You said:
comparison
function lcg(seed) {
const a = 1664525;
const c = 1013904223;
const m = 2 ** 32;
return (a * seed + c) % m;
}
function lcg(seed) {
const MODULUS = 2147483647; // 2^31 - 1
const MULTIPLIER = 16807; // Park–Miller multiplier
// Normalize seed into valid range (1..MODULUS-1)
seed = seed % MODULUS;
if (seed <= 0) seed += MODULUS - 1;
// Return next seed (Park–Miller LCG)
return (seed * MULTIPLIER) % MODULUS;
}