There are a lot of different ways to tackle random name generation. There are games, such as ADOM, that simply pick a random name from a hard coded list, however, what many developers pursue is a generator that will procedurally generate an arbitrarily large number of names that will:
Many attempts have been made to write such generators, and different approaches have been used. Markov chains are one of the methods that have been used, although methods involving bigger data blocks, such as syllables or even entire words, have proven to be easier to manage. The articles listed below refer to the subject of random name generation.