Performance
- Skip the final
random()call infisherYatesShuffle— the last iteration always returns index 0, so one RNG call per shuffle is now elided (#858, #620 @usumerican) - Bump
pcgto 3.0.0, yielding roughly 1.4x faster seeded shuffles and drop a transitive dependency on Long (#850, #857)
Changed
- Migrated to ESM-first builds with a CJS compatibility build (#758)
- Update tsconfig base to
@tsconfig/node24(#836) - Drop Ramda dependency (#835)
- Drop Jest and use native node testing (#761)
- Declared a minimum supported Node version in
engines(#841, #756 @dynst)
Notes
The skip-final-call optimization does not change the shuffled output for a given seed, but it does reduce RNG state advancement by one step per shuffle. RNG operations will observe a different RNG state after each shuffle.