Help for this page
my @items = ( ["foo", 1], ... ["baz", 4], ["quux", 9] );
use List::Util; my $total_weight = List::Util::sum(map { $_->[1] } @items);
my $pick = int(rand($total_weight)); my $picked_item = (List::Util::first { $pick -= $_->[1]; $pick < 0 } + @items)->[0];