If you have a set of point, you can random select from it based on a random number in your attribute table. This is the first step. Once you have the random number, sort your attribute table and take the 200 first points (select manually is the fastest).
The probability that you have two points at less than 250 km from each others is quite small, but it could happen. You should therefore build 125 km buffers around each point, with dissolved boundaries, and select by attributes the buffers with an area larger than pi*125000*125000 m²(which means that you have at least two touching buffers) and only keep the point with the smallest random value. then you select by location all the points that are within 250 km of your first sample of point, invert the selection and manually select the "x" first points to have a total of 200 points. Check again if the new points are not close to each other and repeat the selection process if needed until you have 200 points.
I don't think that you will have to repeat the process more than once, so I suggest that you do this manually.
to compute the random number, you can use python in the field calculator
command :
myrandfunction()
box:
import random
def myrandfunction():
return random.rand()