Random Word Generator
The Random-Word-Generator project attempts to build a word generator that creates fake words using English sounds that are pronounceable. Visit the GitHub Repository to see more details on the process.
Approach
First all 1, 2, 3,4 and 5 letter combinations are extracted from a list of all English words and tallied up.
Next the distributions for letters following 1,2,3 or 4 sequences are calculated and stored in a file.
Now using these distributions, a sequence of letters is generated by repeatedly sampling from the distributions corresponding the the last 4 (or as many characters are available).
Results
These are some of the fake words generated by this approach:
5 chars | 7 chars | 9 chars | 11 chars | 13 chars | 15 chars | 17 chars |
tered | formati | ishington | entssonable | terfechtersec | ulershipsestabl | daysianapoleterms |
ukemi | murrays | ingerouse | otherestive | reditorsingly | dontinatalibera | torrectlyelection |
reles | andreds | tookstors | lutionaliza | allyinglicate | avenuessedingst | boroughtersetiani |
The following are some truly random words to contrast with this approach:
nfuqo | njgkclq | urkbwkrsq | fczoyibjguc | dshvgfjfbjuse | rymxromuzuvnpyo | aruaheqyuisphzywp |
Unsurprisingly, the truly random words are completely unpronounceable. The words generated from the distributions are much more pronounceable and can be remembered much more easily.
Application
The Password Vault - Secure Password Manager app uses this word generation algorithm and the letter distributions as part of an optional partially random passwords generator. The idea being that a random but pronounceable password can be longer and easier to remember that truly random passwords.
The random function used is from Androids SecureRandom package that produces numbers as random as possible on a mobile devise. However since it then draws from known distributions that mimic the English language, this approach cannot be called truly random.