Ian Parberry, "Designer Worlds: Procedural Generation of Infinite Terrain from Real-World Elevation Data", Journal of Computer Graphics Techniques, Vol. 3, No. 1, pp. 74-85, 2014. [pdf and BibTeX at JCGT]
The standard way to procedurally generate random terrain for video games and other applications is to post-process the output of a fast noise generator such as Perlin noise. Tuning the post-processing to achieve particular types of terrain requires game designers to be reasonably well-trained in mathematics. A well-known variant of Perlin noise called value noise is used in a process accessible to designers trained in geography to generate geotypical terrain based on elevation statistics drawn from widely available sources such as the United States Geographical Service. A step-by-step process for downloading and creating terrain from real-world USGS elevation data is described, and an implementation in C++ is given.