my @foo = qw( a b c d e f g h i j k l m n o p q r s t u v w y z ); my %comp; my @feh = sort { if (! defined $comp{$a} ) { if (rand(1) >= .5) { $comp{$a} = 1 } else { $comp{$a} = 0; } } $comp{$a}; } @foo; my $upper = int( scalar(@feh) * .75 ); print join (",", @feh[ 0 .. $upper]); #C:\>perl randsort.pl (output) #b,a,d,c,f,e,h,g,i,j,k,l,m,n,r,q,p,o,s