for my $lid (1..$lidno) { my %deck = %availableNumbers; $lists{$lidno} = [ map { delete %deck{ (keys %deck)[rand( keys %deck)]} } 1..$perbin ]; }