This also meant I could replicate the sing-song nature of lots of silly words I thought of. So I added a small number of word patterns which built on the basic words, adding structure and texture. This all works fine but, like many random word generators, it gets boring pretty quickly as your brain notices the patterns and the repetitions. I did go through all the lists to try to ensure they couldn't generate any rude words that I could think of, though I did allow them to generate silly insults, like Muppet and Whazzok. I also remove duplicate "u"s in the case of starting with Squ.
This avoids words like Brirpet, which I found hard to pronounce Bripet reads better. I do a bit of processing, so if the last letter of the start sound is the same as the first letter in the ending sound, I remove it from the ending sound. For example, taking the first item in each list gives us: Babbaldo - pretty silly right? To generate a silly word, I just pick a random item from each list and stick them together. This was just to bias the random picking to pick them and save me doing proper weighted random picking. You'll notice that some of the sounds in the last list are duplicated. The seconds list of end sounds was: aldo, et, et, le, le, le, o, ok. The first list of end sounds was: bb, ck, dd, mf, mp, mpf, ng, nk, pp, rf, rk, rp, zz.
My list of vowels was: a, e, i, o, u, ee, oo. Or: B, F, G, P followed by l, r, w or nothing The start sound are: Dr, Dw, L, M, Qu, Thr, Tr, Tw, Scr, Sl, Sm, Sp, Spl, Squ, Wh, Y. There is a definite tendency for silly words to include the consonants b, p and f. Then I broke them down into to initial sounds, vowels, and two ending sounds. To start with I started thinking of words, or just noises, that sounded silly: Yerp, Blumpf, Floongle, Mickle-mackle-moo, Wibble, and so on.