You can use custom movement behaviour to make sure no objects are overlapping.
Custom movement has "push out" of object which you may find helpful as a simple way to stop overlap.
A harder (but better way) to do it will be to check for overlap at offset when creating your objects. If it's too close to another object then it can try a new random position to see if it's okay or needs to be moved again.
Hopefully this helps a little bit.