Для *nix
while(true) do ~/genpasswd.sh \n >> passlist; done
cat ~/genpasswd.sh
tr -cd [:alnum:] < /dev/urandom | head -cNUM
затем awk юзнуть
tr --help
Спойлер
CHAR1-CHAR2 all characters from CHAR1 to CHAR2 in ascending order
[CHAR*] in SET2, copies of CHAR until length of SET1
[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:] all letters and digits
[:alpha:] all letters
[:blank:] all horizontal whitespace
[:cntrl:] all control characters
[:digit:] all digits
[:graph:] all printable characters, not including space
[:lower:] all lower case letters
[

rint:] all printable characters, including space
[

unct:] all punctuation characters
[:space:] all horizontal or vertical whitespace
[:upper:] all upper case letters
[:xdigit:] all hexadecimal digits
[=CHAR=] all characters which are equivalent to CHAR
зы. не испольуйте софт, в котором вы не уверены.