Markov Chains provide an easy way to generate unique names that seem plausible based on a list of familiar names. The Name Blender generator on One Dice Six implements this idea.
You need names for people, places and things in your fantasy world. You can work from historical lists, such as census data. This can produce names without the right flavor (Fred the Barbarian), or they can seem unoriginal (Gandalf the Wizard). You can use use a trick such as using the middle name of a well-known character (Captain Tiberius). You can use an AI and get Lyra or Chen, over and over. You can certainly just wing it, which can lead to unintended reuse, such as The Inn of the Dancing Frog having a rival next door called The Inn of the Dancing Toad.
Here’s another method that’s fast, makes unique names and generally produces names that all seem somewhat similar.
The trick is to use a Markov Chain. The technique starts with a list of names that you wish to model. The names are scanned over as a sequence of letters. Take a slice of the name, maybe 3 or 4 letters, and then look at which letter comes next. Here’s a list of first names that begin with “ste”.
- Steele
- Stefan
- Stefano
- Stella
- Stellan
- Stephan
- Stephanie
- Stephen
- Stephon
- Sterling
- Stetson
- Steve
- Steven
- Stevie
The letters that appear as the fourth letter are e, f, l, p, r, t, and v. Note that p appears 4 out of 14 times, and v appears 3 out of 14 times. Now, imagine we’re trying to come up with a new, unique name and we’ve picked letters at random up to having “ste”. We could construct a lookup table to pick the fourth letter at random.
| 1d100 | Next Letter |
|---|---|
| 1-7 | e |
| 8-21 | f |
| 22-35 | l |
| 46-63 | p |
| 64-70 | r |
| 71-77 | t |
| 78-100 | v |
Roll a 55, and the result is p. Now you have “step”, so you refer to the lookup table for “tep”, and so forth. Except, this would be incredibly tedious if done by hand. Computers are great and analyzing a long list of names and building the many lookup tables. Furthermore, the technique is simple enough to run in your browser. Thus, we have Name Blender.

Choosing a source list relies on your creativity and how many names you start with. In the example above, I’ve started with 172 names found in the bible. You can see with names like Hoseph and Simothy, they are clearly reminiscent of names we all recognize but they aren’t in the source list. You can get really far using names from various cultures, but what gets really interesting is when you mix two lists together.
For example, I mixed biblical names with the 40 most popular baby names in Sweden and came up with names like Agnesimus, Malter, and Gabram. This works for place names, too. I mixed up the names of the top cities in the US and came up with Marbond, Windido, Dester, Saukeeport, Stinsonia. From ancient Greek city names I got Olynth, Phermum, Patracus, Lamphidna.
The longer the stem length, the fewer possible results there can be and more regular the results become. Short stems tend to give results that seem more random.
Lists of names are readily available on the Internet. Many times these lists need to be edited into just the names. You can also ask an AI to produce a like with a prompt like “give me a list of 100 Chinese given names suitable for warriors/generals from the Genghis Khan era”.


Leave a Reply