[Turn off line numbering]1: var len, out, con, vow, rare, more, c, caps, maxcaps, flag, last, special; 2: 3: len = random(6) + 7; 4: out = ""; 5: con = "bcdfghjklmnprst"; 6: rare = ["q", "aa", "ee", "oo", "qu", "v", "w", "x", "z", "y"]; 7: vow = "aeiou"; 8: more = "1234567890+,:.@'\"/!#%*^~"; 9: flag = random(15); 10: maxcaps = random(4) + 2; 11: while (strlen(out) < len) { 12: switch (flag) { 13: case 1, 2: 14: special++; 15: c = more.random(); 16: out += c; 17: flag = random(15); 18: case 3: 19: if (rare) { 20: c = rare.random(); 21: if (random(2) == 1) 22: rare = setremove(rare, c); 23: out += c; 24: flag = random(15); 25: } 26: case 4 .. 7: 27: c = vow.random(); 28: out += c; 29: flag = random(7) + 8; 30: case 8 .. 15: 31: c = con.random(); 32: while (c == last) 33: c = con.random(); 34: out += c; 35: flag = random(15); 36: } 37: last = c; 38: } 39: if (!special) { 40: for c in [1 .. random(len / 2)] { 41: special = more.random(); 42: c = random(len); 43: out = strgraft(out, c, special); 44: } 45: } 46: return out;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit