20だけど
こういう感じにしてみた。$rateに何パーセントの確立で選ぶ値が入ります。例えば10とか20とか。

でもこれだと絶対にX%の確立で一方が選ばれないんだよね。
誤差が2−4%ぐらいでる。
何か言い方法ありませんか?

sub erabu{

my $rate = shift;

my $divider = $rate/10;
my $seed = 10/$divider;
my $randomInt = int(rand($seed));

if ( $randomInt == 0 )
{
return 0;
}
else
{
return 1;
}

}