リストをでたらめに並び替える方法

my @a = sort { int(rand(4)) - 2 } @_;

my @a = sort { int(rand(2)) - 1 } @_;でも十分だと思ったんですが、あまりにばらつきがありませんでした(繰り返しても並び順があまり変わらない)。この辺はなんだか、他の言語にもいえそうな気がします。