My roommate was trying to decide on a handle for a certain streaming service today, and was having a lot of trouble finding one that wasn’t

Boring

Taken

Stupid

So we messed with nicknames and such for awhile, and nothing stuck. Then I jokingly suggested he use the MD5 hash of his name, and we found a site that would take a string and compute all sorts of ciphers. One of them was rot13, which didn’t actually look half bad. That gave me the idea to start messing with letters algorithmically.

I threw together a rotN generator, but that didn’t create anything interesting. I started looking into permutations, but interesting names are really too long for that to be a viable option. Then he suggested the obvious: pick N random numbers between 0 and 25, map them to letters, and spit out the result.

Now, that idea wasn’t going to be very efficient, in terms of spitting out names that were actually pronounceable and interesting. It got me thinking about randomness though, which leads me to my main topic: Markov chains.

I haven’t really studied them in much detail, but the basic idea of a Markov chain algorithm is to “train” your program on a really big sample (I used a big chunk from some random book), then make it use the information it gathered to make “informed” decisions, or decisions backed by statistical data. In this case, the decision being made was “what letter should come next?”

I won’t detail the algorithm here; I figure anyone who’s actually interested in that sort of thing can read the program and figure it out. I’ll post some of the names it came up with, though:

Xerenth

Zathede

Grauler

Tereshi

Aederth

Nareras

Celdere

Radagan

Spitballing, I’d say it’s about a 2 in 3 chance of being pronounceable, and maybe a 1 in 15 chance of being something neat like these. I’m going to refine the algorithm some more, then maybe put it on the internet :P