The 'setwppos' command should prove useful here:
[player, 1] setwppos getpos logic1
'setwppos' is set out like this:
[nameofunit, waypoint index (1 for 1st wp, 2 for 2nd etc)] setwppos whereyouwant
So you say you want the player's waypoint location to be random each time? Well, you'll want to do something like this:
_NUMBERS = 5
_NUMB = random _NUMBERS
?(_numb < 1): [player, 1] setwppos getpos logic1
?( (_numb > 1) and (_numb <= 2) ): [player, 1] setwppos getpos logic2
?( (_numb > 2) and (_numb <= 3) ): [player, 1] setwppos getpos logic3
?( (_numb > 3) and (_numb <= 4) ): [player, 1] setwppos getpos logic4
?( (_numb > 4) and (_numb <= 5) ): [player, 1] setwppos getpos logic5
That code will place the player's first waypoint at one of 5 locations (each location is given by a gamelogic). You can increase the number of locations by changing 5 to whatever number you want, but you'll have to make conditions for it like I have done.
Hope this helps