Is there any generator available online that will let me input x amount of letters, and generate random words?

ie if I used BHKDAIE, could generate all 4 letter words (non-English also) using any combination of those letters without repeating the letters more than once.

BHKD, BKDA, BITE, HEAT, etc etc...

  • 4
    $\begingroup$ Hello, anders, and welcome to Worldbuilding. I'm not convinced that this question is really about worldbuilding, perhaps you could edit to clarify how this question is appropriate for the site. Please visit our help center and take the tour to learn more about how the site works. Have a nice day! $\endgroup$ – Gryphon Jul 6 '18 at 11:58
  • 3
    $\begingroup$ Weirdly I think this is perfect for world building and programming is not common knowledge. I get your question. I have friends that have never programmed anything, one of them couldn't shut up about a program that could extract two random elements out of a list, he wrote a term paper about the implications for modern man for his philosophy class. Don't worry if people tell you this is an easy problem. But you should be aware that this is a very simple programming issue. Everyone knows someone that can program, ask one of your friends if they can do that one-liner for you $\endgroup$ – Raditz_35 Jul 6 '18 at 11:59
  • 2
    $\begingroup$ There is a l between r and d. This site is about worLdbuilding, not wordbuilding. $\endgroup$ – Legisey Jul 6 '18 at 14:04

A quick google search for 'letter word permutations online' turned up the first result:


The site lets you put in the letters you want to use ('BHKDAIE' in this case), then choosing the options 'by taking r letters at a time' and 'r=4' will result in 840 permutations (from 'ABDE ABDH ABDI' to 'KIHB KIHD KIHE').

There are most likely other websites with similar functionality, but this seems to do exactly what you want.

| improve this answer | |

In your favorite console, open up developer tools. If you are using Windows, then F12 will very probably do it for you. Otherwise search the menus.

Find the console and paste the following code, then hit Enter/Return:

function frobnicate(source, size) {
    if (size > source.length) return;
    var result = '';
    for (var i = 0; i < size; i++) {
        var index = (Math.random() * source.length -1) + 1;
        result += source.charAt(index);
        source = source.substr(0, index) + source.substr(index + 1);
    return result;

This is a simple program that does what you want, and pasting it as above will load it into memory. It will stay there until the tab you are using for it gets closed.

Now, to use it, simply write the following code in the console, then hit Enter/Return:

frobnicate("BHKDAIE", 4);

And you will see, in the console, the result you want. You can replace the characters in the input - just make sure they are between the quotes. You can also change that number 4 for any other number, as long as it is smaller than the amount of letters in the input (otherwise the program does nothing).

You can use the same approach with practically any other programming language. In order to make this into a standalone program you can open up in your desktop/laptop, or to make this into an iOS/Android app, you'll need to learn programming - or you can ask a nerd friend to do it for you.

| improve this answer | |

I don't know if this is really the place for this question but I read a fantastic article about this:


There's way too much information in it to present in a single SE answer, unfortunately. It describes the process of generating made-up words and languages yourself in a way that doesn't require any programming knowledge (you could use an online RNG, for example).

The basic idea is that you come up with a number of character sets, a syllable structure, a word structure and a set of morphemes (not all of those steps are necessarily required) and then you choose from them at random.

As a simple example, you might choose:

Consonants: b, k, m, n, t, sh
Vowels: a, e, o, u
Liquids: l
Syllable structures: CVC, CLVC, CLV
Word structure: 1 to 2 syllables

Now first you would choose a number of syllables at random, then decide the structure of those syllables at random to come up with a few words:


And finally fill in each letter at random:

kem, shlabot, blu, tebmun

Depending on how you choose your letters, you may need to throw out a word every now and then ("tlo" is hard to pronounce) but otherwise the result feels natural. Because they use the same letters in the same ways, they all feel like a unified set of words even as they're chosen at random.

The article goes into a lot more detail that will teach you very briefly about phonotactics, orthography and morphology, which can help you develop more complex nonsense languages that despite being nonsense still feel real.

There might be canned online fantasy word generators out there, but using this method you are in complete control of your end result.

| improve this answer | |
  • $\begingroup$ "tlo" is perfectly simple to pronounce. Simply say "cat load" quickly, and you've made that phoneme. Drop the "ca-" and the "-d" and there you are. $\endgroup$ – Keith Morrison Jul 6 '18 at 16:08

Although I hardly see the connection to worldbuilding, the fix is a programming one.

Maybe ask a programmer friend of yours or in some forums about it. If you just want real, English words, the algorithm is really simple.

  1. Input list of selected letters
  2. Input dictionary (list of words)
  3. for every word:
    • create local copy of list of letters
    • for every letter in the word:
      • Is letter in not original list? => ignore letter, proceed with next letter
      • Is letter in original AND local list? => remove letter from local list, proceed with next letter
      • Is letter in original BUT NOT in local list? => ignore word, proceed with next word
      • If no more letters in word => return the word as a valid word
  4. Celebrate your weirdly assembled list of words that share the same letters.
| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.