my @values; @values = (1..1000); @values[$_,$a] = @values[$a=rand($_-1),$_] for (reverse 1..$#values);