[Turn off line numbering]1: var len, out, con, vow, rare, num, c, caps, maxcaps, flag, last; 2: 3: len = random(5) + 7; 4: out = ""; 5: con = "bcdfghjklmnprst"; 6: rare = ["q", "aa", "ee", "oo", "qu", "v", "w", "x", "z", "y"]; 7: vow = "aeiou"; 8: num = "1234567890"; 9: flag = random(15); 10: maxcaps = random(4) + 2; 11: while (strlen(out) < len) { 12: switch (flag) { 13: case 1: 14: c = num.random(); 15: out += c; 16: flag = random(15); 17: case 2, 3: 18: if (rare) { 19: c = rare.random(); 20: if (random(2) == 1) 21: rare = setremove(rare, c); 22: out += c; 23: flag = random(15); 24: } 25: case 4 .. 8: 26: c = vow.random(); 27: while (c == last) 28: c = vow.random(); 29: out += c; 30: flag = random(7) + 3; 31: case 9 .. 15, -1: 32: c = con.random(); 33: while (c == last) 34: c = con.random(); 35: out += c; 36: flag = random(10); 37: case -15 .. -9: 38: c = con.random(); 39: while (c == last) 40: c = con.random(); 41: out += uppercase(c); 42: flag = random(10); 43: case -8 .. -4: 44: c = vow.random(); 45: while (c == last) 46: c = vow.random(); 47: out += uppercase(c); 48: flag = random(7) + 3; 49: case -3, -2: 50: if (rare) { 51: c = rare.random(); 52: if (random(2) == 1) 53: rare = setremove(rare, c); 54: out += uppercase(c); 55: flag = random(15); 56: } 57: } 58: last = c; 59: if (caps < maxcaps && random(10) == 1) { 60: caps++; 61: flag = -flag; 62: } 63: } 64: return out;
// Created 27-Mar-1995 as a part of ColdCore, see: @help Credit