my @one = qw( 1 3 5 7 9 11 13 13 15 15 17 19 21 23 ); my @two = qw( 1 5 9 13 17 21 ); my %valid; $valid{$_}++ for @one; @valid{@two} = (0) x @two; @choices = map { ($_) x $valid{$_} } keys %valid; sub randelt { $choices[rand @choices] }