Todd,
Thank you for showing interest! Sorry that my explanation was not so clear. I try again. Lets say that I have 3 components (container blue, container white, container red). All these components have a certain texture. I would like to create a container stack that consists of these 3 components randomly placed in the stack. These containers should be on top of each other and the stack can't be higher than 5 containers high. In the real world, there is a space between containers. Some cases this space is 20 cm and some cases 40 cm.
Usually I have used MatrixProximity script to create container stacks and then I have deleted some containers to make container stack uneven/random. Anyway, by using MatrixProximity script I have only been able to create container stacks that consist of one kind of containers. Therefore, I was hoping that there is already a script that would randomly change the places between certain components that have same dimensions. In this case I would create a container stack (see the picture) of 3 different components (containers) with a certain spaces between components, run the script to randomly change the places of these components and then delete some of the components to make the stack uneven. The result would be something like in the second picture.
I hope this explanation is little more clear than the previous one.

