Syllable-based name generation is perhaps the simplest random name generation to implement. In its most basic form, the method looks up two random elements: one from a list of âfirst syllablesâ, and a second one from a list of âsecond syllablesâ. The two elements are then joined to form a single string. For instance, a simple pair of lists like this:
Steer / pike
Burb / root
Slartibart / fast
Snarley / tot
Prune / squallor
Puss-in- / boots
Suck / fizzle
Gormen / ghast
Rose / bud
Goldi / locks
would yield names such as âSnarleybootsâ and âPrunerootâ, which could be deemed acceptible, but also slightly disjointed names, like âSlartibarttotâ.
The key to a successful syllable-based name generator lies in making a balanced pair of lists, where the different elements have a common feel. Typically, a set of syllable lists will have a common theme (eg. âGermanic femaleâ, âArabic maleâ, âPub namesâ).
For a more varied engine, you can of course use three or more lists. Three lists of ten syllables each already opens up for 1000 names. You can also include empty syllables (which in the example above would allow names like âPruneâ and âTotâ) or placeholder âsyllablesâ that are instantly replaced by a two-syllable set (yielding names like âSlartibartsquallorfizzleâ). Name generation rules can have a grade of randomness as well. Imagine you have three sets of syllables. You are not limited to using one of each. It might be a good idea to place a random number of middle syllables between the starting and ending ones. You might also want to include some post-processing rules, eg. disallowing triple consonants, or making sure that a first syllable ending with a vowel will not be followed by a second syllable beginning with a vowel.
The big pro of syllable-based name generation is that itâs extremely easy to implement, and you can retain good control of what kinds of names are produced. A major downside is that almost every set of lists will occationally spit out a really goofy name.