add three extra chars to get back to original 1/3 upper 1/3 lower 1/3 numbers (and other chars now).
go back to selecting chars from string by mt_rand instead of str_shuffle (should be faster).