# randomize, via Fisher-Yates @array[-$i,$j] = @array[$j,-$i] while $j = rand(@array - $i), ++$i < @ +array; # remove a chunk from the end and place at the beginning ("cutting") splice @array, 0, 0, splice(@array, rand @array); # weave an array, method 1 (ABCDEF => ADBECF) splice @array, @array/2 - $_, 0, pop @array for 0 .. (@array/2)-1; # weave an array, method 2 (ABCDEF => DAEBFC) splice @array, @array/2 + $_, 0, shift @array for 0 .. (@array/2)-1;
splice @array, 0, 0, splice(@array, rand @array); [download]
unshift @array, splice @array, rand @array; [download]
-- Randal L. Schwartz, Perl hacker
Ceramics Glass Wood Metal Plastic Paper Banana leaves Something else
Results (485 votes), past polls