Create a separate object of the same size as the waypoint, and make that object invisible.
Upon creation of this new object:
X: 200 + random(880) for the new object
Y: 200 + random(320) for the new object
Check for a collision against tower:
If new object is in collision with tower,
X: 200 + random(880) for the new object
Y: 200 + random(320) for the new object
else:
Create object waypoint (newobject.x, newobject.y)
Delete the instance of the new object