use List::Util qw/shuffle/; my @weekdays = shuffle qw/ Monday Tuesday Wednesday Thursday Friday Saturday Sunday /; say join ", ", map { $$_[0] } sort { $$a[1] cmp $$b[1] } map { [$_, lc(substr $_,0,2)=~tr/softwarehum/50411307860/r] } @weekdays;