If you can picture the way you want the spawn to work, then we can help you find a way to achieve it.
If the places to build are fixed, you can check if there are Buildings in the area, store regions into an array, and order creeps to attack a random region of those which have buildings in it.
If they're not fixed, you may have to store the buildings inside a UnitGroup and order the creeps to attack a random point around a random unit in the UnitGrup (wich are the buildings). Notice: RANDOM POINT around, and not the building itself.
You may also want to add the creeps to a unit group and check every 10 seconds or so if their current order is "null" or "stop" and order those to attack one of the buildings (as suggested above). This would prevent them to stack up somewhere.