use List::Util 'shuffle'; my @shuffled = shuffle ( 1 .. 50 ); print join ' ', splice( @shuffled, 0, 5 ), "\n" for 1 .. 5;