I have a collection of objects in my scene that I want to randomly duplicate in a similar fashion to the Array modifier. How would I go about doing this, would I need to program this function myself?

Picture if I didn't explain this clearly: enter image description here

  • $\begingroup$ I think this question should be reopened because the goal was to achieve an array with a 𝗿𝗮𝗻𝗱𝗼𝗺 distribution of objects in a collection. The suggested duplicated question has answers that involves duplicating the collection/group as a whole, not picking one random element. $\endgroup$
    – Carlo
    Jun 23 '20 at 0:00

Use a Particle System

You can easily do it with the built in tools.

  1. Start by creating the array, be sure to enable the merge option.
  2. Create a Hair type particle system, set the number of particles equal to your array repetitions and the render type to collection and choose "pick random".
  3. Enable the advanced options and make sure to "Use Modifier Stack" (option enabled). Disable Random Order and set 1 Particle per face.

BAM! Done.

Now it's only a matter of adjusting the rotation and the size of your instances.

enter image description here

You can inspect my file with the proper values for size and rotation here:

  • 1
    $\begingroup$ Do mind that the hair particle number can't be animated, so if you want to dynamically change the size of your array, you will have to use the hair number to drive the array count and not the other way around $\endgroup$
    – Gorgious
    Jun 23 '20 at 7:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.