You could make the spawn system a few ways.
If you're going total fortnite, you could run a script for making players teleport 3 blocks forward, and 1-3 blocks up, as they fall, to simulate them flying through the world, and pressing X to cancel the script or deploy them. You'd still have to figure out the fall damage part.
A better way, you could take the center of the map (X,Y,Z) and set a var system to add a minimum distance from spawn (let's say 100 blocks) and then vary the cords from there using random numbers.
So something like this: (I haven't scripted in a while, so I don't remember the format unless I put it in front of me.)
Is random 
Var XA = 100 (blocks x in the positive direction)
Var XA = -100 (blocks x in the negative direction)
Is random 
Var ZA = 100 (blocks z in the positive direction)
Var ZA = -100 (blocks z in the negative direction)
Var randomx = random number between the max distance if the world, and 100 blocks from the center, to act as variance later.
X + XA + (Var:Randomx)
Z + ZA + (Var:Randomz)
Next you would use is block to account for walls, and itlf the leg and body blocks of the spawn are non, then they spawn, if not, add 1 to a random x or z