#!/usr/bin/perl -w use strict; my @lines = <>; my @order = sort { $a->[0] < $b->[0] } map { [ rand($#lines), $_ ] } (0..$#lines); foreach my $line (@order) { print $lines[$line->[1]] }