use List::Util qw( shuffle ); my @lines; push @lines, join(' ', shuffle split) for <>; print "$_\n" for shuffle @lines;