Method code for $code_lib.random_password()

[Turn on line numbering]
var len, out, con, vow, rare, num, c, caps, maxcaps, flag, last;

len = random(5) + 7;
out = "";
con = "bcdfghjklmnprst";
rare = ["q", "aa", "ee", "oo", "qu", "v", "w", "x", "z", "y"];
vow = "aeiou";
num = "1234567890";
flag = random(15);
maxcaps = random(4) + 2;
while (strlen(out) < len) {
    switch (flag) {
        case 1:
            c = num.random();
            out += c;
            flag = random(15);
        case 2, 3:
            if (rare) {
                c = rare.random();
                if (random(2) == 1)
                    rare = setremove(rare, c);
                out += c;
                flag = random(15);
            }
        case 4 .. 8:
            c = vow.random();
            while (c == last)
                c = vow.random();
            out += c;
            flag = random(7) + 3;
        case 9 .. 15, -1:
            c = con.random();
            while (c == last)
                c = con.random();
            out += c;
            flag = random(10);
        case -15 .. -9:
            c = con.random();
            while (c == last)
                c = con.random();
            out += uppercase(c);
            flag = random(10);
        case -8 .. -4:
            c = vow.random();
            while (c == last)
                c = vow.random();
            out += uppercase(c);
            flag = random(7) + 3;
        case -3, -2:
            if (rare) {
                c = rare.random();
                if (random(2) == 1)
                    rare = setremove(rare, c);
                out += uppercase(c);
                flag = random(15);
            }
    }
    last = c;
    if (caps < maxcaps && random(10) == 1) {
        caps++;
        flag = -flag;
    }
}
return out;

["// Created 26-Mar-1995 as a part of ColdCore, see: @help Credit"]

the Cold Dark