sub naive (@) { for (reverse 1..$#_) { my $r=int rand($_+1); @_[$_,$r]=@_[$r,$_]; } }