9 lines
333 B
JavaScript
9 lines
333 B
JavaScript
|
export function unsafeUniformIntDistributionInternal(rangeSize, rng) {
|
||
|
var MaxAllowed = rangeSize > 2 ? ~~(0x100000000 / rangeSize) * rangeSize : 0x100000000;
|
||
|
var deltaV = rng.unsafeNext() + 0x80000000;
|
||
|
while (deltaV >= MaxAllowed) {
|
||
|
deltaV = rng.unsafeNext() + 0x80000000;
|
||
|
}
|
||
|
return deltaV % rangeSize;
|
||
|
}
|