in reply to Randomising an array

The best way to unsort an array? Sort it!!

@a=0..20;$,=" "; print sort {1-int rand 3} @a;

OK, I couldn't resist golfing it.
Actually this is a really bad randomizer. It behaves more like an incomplete shuffle. It's also not guaranteed to finish but the failure should be extremely rare.

s//----->\t/;$~="JAPH";s//\r<$~~/;{s|~$~-|-~$~|||s |-$~~|$~~-|||s,<$~~,<~$~,,s,~$~>,$~~>,, $|=1,select$,,$,,$,,1e-1;print;redo}