odin-js-fundamentals-part-4/node_modules/pure-rand/lib/esm/distribution/internals/UnsafeUniformIntDistributio...

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;
}