use strict; use warnings; use List::Util 'shuffle'; my @list = shuffle('A'..'N', 'I'..'K'); my $pick = 'J'; print sort {(($a lt $pick) == ($b lt $pick)) ? ($a cmp $b) : ($b cmp $a)} @list; #### use strict; use warnings; use List::Util 'shuffle'; my @list = shuffle('A'..'N', 'I'..'K'); my $pick = 'J'; ++(my $after_pick = $pick); print map substr($_,1), sort map {$_ lt $pick ? "$after_pick$_" : "$pick$_"} @list;