Ok I found the answer. Posting in case useful for anyone:
The 'should of been obvious' answer was that I was using a random(360) for both x and y which of course would have been different!
So, here's the process:
1. Create a global variable 'randomAngle'
2. On the event of creating an object, set randomAngle to random(360)
3. Set X value of object to:
(sin(randomAngle)*((sqrt((windowWidth*windowWidth)+(windowHeight*windowHeight))/2)+100))+(windowWidth/2)
4. Set Y value of object to:
(cos(randomAngle)*((sqrt((windowWidth*windowWidth)+(windowHeight*windowHeight))/2)+100))+(windowHeight/2)
The +100 in the equations provides some extra clearance off screen, can be whatever you want.
If you created a 1000 objects and tested this it should draw a circle of them around the central point of your screen.
- The equation uses Pythagoras equation (h? = x? + y?) to get the distance from top-left corner to bottom-right corner of the screen.
- Then halves it (/2) to get central point to corner of the screen.
- sin(angle) x hypot = opposite side (x) for X (s& = o/h)
- cos(angle) x hypot = adjacent side (y) for Y (c& = a/h)
The X & Y values at this point would be offset around the 0,0 coordinate so now it's a case of adding half the width and height to offset around the center of the screen.
Of course, you might be able to store much of these calculations at app start to reduce computations.
Hope that helps anyone having a similar issue :)