Skip to content

Instantly share code, notes, and snippets.

@bartwttewaall
Created June 23, 2022 09:52
Show Gist options
  • Save bartwttewaall/daa43749e6f894e348fbb31043f3438f to your computer and use it in GitHub Desktop.
Save bartwttewaall/daa43749e6f894e348fbb31043f3438f to your computer and use it in GitHub Desktop.
Random functions
// Random integer from <low, high> interval
export function randInt(low: number, high: number) {
return low + Math.floor(Math.random() * (high - low + 1));
}
// Random float from <low, high> interval
export function randFloat(low: number, high: number) {
return low + Math.random() * (high - low);
}
// Random float from <-range/2, range/2> interval
export function randFloatSpread(range: number) {
return range * (0.5 - Math.random());
}
let _seed = 1234567;
// Deterministic pseudo-random float in the interval [ 0, 1 ]
export function seededRandom(s: number) {
if (s !== undefined) _seed = s;
// Mulberry32 generator
let t = (_seed += 0x6d2b79f5);
t = Math.imul(t ^ (t >>> 15), t | 1);
t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment