diff --git a/Irpg/Event.pm b/Irpg/Event.pm index 5e964cae8fe554bc6a1a700bd3e78abdff78fbc2..844099554a1d480f1ffc0dd51b32fd73b7421cb0 100644 --- a/Irpg/Event.pm +++ b/Irpg/Event.pm @@ -180,7 +180,9 @@ sub choose_player { @players = @levels{sort keys %levels}; #exponential distribution on levels (lambda = 0.5) - @players = @{$players[-log(rand) / 0.5]}; + my $rand_val = $#players+1; + $rand_val = int(-log(rand) / 0.5) while ($rand_val > $#players); + @players = @{$players[$rand_val]}; #then uniform distribution for players of the same level return $players[rand(@players)]; }