mirror of
https://github.com/SrIzan10/lofi.git
synced 2026-06-06 00:56:53 +00:00
13 lines
433 B
TypeScript
13 lines
433 B
TypeScript
// source: https://decipher.dev/30-seconds-of-typescript/docs/shuffle/
|
|
// modified to use existing SIMDMersenneTwister constructor for random number generation
|
|
|
|
import type { SIMDMersenneTwister } from "./mersenne";
|
|
|
|
export const fisherYates = (arr: any[], sfml: SIMDMersenneTwister) => {
|
|
let m = arr.length;
|
|
while (m) {
|
|
const i = Math.floor(sfml.random() * m--);
|
|
[arr[m], arr[i]] = [arr[i], arr[m]];
|
|
}
|
|
return arr;
|
|
}; |