in reply to How much random is rand()?

What do you think scalar grep /4/, qw(14) returns?

Yup. The moment you add 14, you can't ever add 4, because it's a subset of 14. So you get "stuck" adding the last few single-digit numbers, because they're already "within" the longer numbers.

You should be looking for shuffle instead. Been done quite a few times here already. For the lazy:

use List::Util qw(shuffle); my @shuffled = shuffle 0..32;