"Chop away the wood" :)
Delete overlaped objects/proxies.
Plain script with straightforward idea behind
that partially fill user request.
No big choice for testing overlaped proxies.
Intersects function test bounding boxes overlap.
This is very quick and dirty solution.
Some extra control on overlaped amount can be done
using boxes to represent objects bounding boxes.
This is not done here. It's not difficult and
if you have the good will (and free time) then
just write this part.
How to use it
Select your objects, set iterations, push the button.
* Note that its come to you to attend what you select.
No Undo recorded, but File/Hold is performed, so
you can use File/Fetch to turn step back if needs.
How it works
Random pairs are tested for intersection on each iteration
and if they overlap then random one of them is deleted.
So that how many iterations will need and how many steps
to clean your overlaped objects is very relative query.