#!/usr/bin/perl @arr=("1","2","3","4"); @sub=@arr; foreach (@arr){ $slot = int(rand(@sub)); ($new) = splice(@sub,$slot,1); push(@newarr,$new); } foreach (@newarr){ print "$_\n"; } #### $hold=@arr; foreach (0...$hold){ push(@newarr, splice(@arr,int(rand(@arr)),1)); }