Nearly all random name generators utilize a derivative of the Markov chain. This algorithm is essentially a random variable generator, but it uses weighted probabilities to gain slight control over which variables are generated next.
In a random name generator based on the Markov chain, the first unit is chosen completely randomly. In most name generators, each unit represents one letter or character. Each unit has a probability table associated with it, which provides a model for choosing the next letter.
For instance, if the letter B is chosen, it could have a high probability of being followed by the letter E, but a much lower chance of being followed by an X. The algorithm then randomly chooses the next letter, basing its decision on the weighted probability. This decision is repeated until the name generator reaches a stopping place.
Some derivations of the Markov chain utilize units that are larger than one character. For example, a series of two or three letters might be used as a single unit, such as "QU" or "CAD." This algorithm runs much faster and requires less programming, but generates significantly fewer combinations of letters.
Occasionally, a random name generator uses units that are so large, the probability aspect of the Markov chain can be dropped. In this case, the algorithm simply scans a list of approved units and combines two or three of them together randomly. In most cases, these types of simple name generators pair a first name with a last name.