There are two usual ways to do this:
1) use some math and the agents' ID numbers to calculate starting positions. For example, set x to ID * 5. Then you can cut down on the number of individual setup blocks you need.
2) have treasures run a procedure that places them on the ground. Create a procedure, and inside it, use a repeat block with a big number of repeats. Inside the repeat, do "IF patch height != 0 then setx ((random 101)-51), sety ((random 101)-51) ELSE exit proc." That way, it will keep moving itself to a random location until it detects that it is on the ground. Once it is on the ground, it will just end the procedure and move on to the next treasure.
Hope this helps!