I tried the code above (@Lyra's implementation of @whuber's answer) in google-maps, and it gave very inaccurate results. Specifically the points are distributed in an ellipse with its width 1.5 times its height (in Panama) and 8 times its height (in Sweden). If I remove the x coord adjustment the ellipse is distorted the other way, 8 times higher than its width.

The functions below seem to work correctly. 

There is a [full gist here][1]

    /* 
    coords is an object: {latitude: number, longitude: number}
    toRadians() and toDegrees() convert both values of the above object
    */
    function pointAtDistance(inputCoords, distance) {
    	const result = {}
    	const coords = toRadians(inputCoords)
    	const sinLat = 	Math.sin(coords.latitude)
    	const cosLat = 	Math.cos(coords.latitude)
    
    	/* go a fixed distance in a random direction*/
    	const bearing = Math.random() * TWO_PI
    	const theta = distance/EARTH_RADIUS
        const sinBearing = Math.sin(bearing)
    	const cosBearing = 	Math.cos(bearing)
        const sinTheta = Math.sin(theta)
    	const cosTheta = 	Math.cos(theta)
     	
    	result.latitude = Math.asin(sinLat*cosTheta+cosLat*sinTheta*cosBearing);
    	result.longitude = coords.longitude + 
    		Math.atan2( sinBearing*sinTheta*cosLat, cosTheta-sinLat*Math.sin(result.latitude )
    	);
    	/* normalize -PI -> +PI radians */
     	result.longitude = ((result.longitude+THREE_PI)%TWO_PI)-Math.PI
    
    	return toDegrees(result)
    }
    
    function pointInCircle(coord, distance) {
    	const rnd =  Math.random()
    	/*use square root of random number to avoid high density at the center*/
     	const randomDist = Math.sqrt(rnd) * distance
    	return pointAtDistance(coord, randomDist)
    }


Code was based on algorithms from [here][2]

Here you can see a couple of jsfiddles that show the problem with the stretching ellipse

[Correct algorithm][3]

[Distorted algorithm][4]


  [1]: https://gitlab.com/snippets/28591
  [2]: http://www.movable-type.co.uk/scripts/latlong.html
  [3]: http://jsfiddle.net/hoolymama/56wzdtax/
  [4]: http://jsfiddle.net/hoolymama/h9e9goox/1/