The Curious Engineer

All blogs / Algorithms / data structures

PCG, A Better Random Number Generator

pcg-random.org

PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict.

Algorithms / data structuresC++Math

’15’16’17’18’19’20’21’22’23’24’25’26
Posts
32 from 31 Mar 2015 to 10 Jan 2026
Posting
now and then (1 in the last year)
Kind
personal blog
Feed
https://pcg-random.org/rss.xml

2026 1

  1. On Being Officially Classed as a Robot

2018 11

  1. Efficiently Generating a Number in a Range
  2. Some (More) C++ PRNG Implementations
  3. Exploring Xoshiro's Close-Repeats Flaw
  4. A Birthday Test: Quickly Failing Some Popular PRNGs
  5. Random Invertible Mapping Statistics
  6. Bob Jenkins's Small PRNG Passes PractRand (And More!)
  7. On Vigna's PCG Critique
  8. Implausible Output from Xoshiro256**
  9. A Quick Look at Xoshiro256**
  10. Xoroshiro128+ Fails PractRand Even When Truncated
  11. Does It Beat the Minimal Standard?

2017 13

  1. On Trivial Predictability
  2. Visualizing the Heart of Some PRNGs
  3. Too Big to Fail
  4. How to Test with TestU01
  5. More PractRand Passes: ChaCha & Truncated XorShift*
  6. Predictability Party Tricks
  7. How to Test with PractRand
  8. 128-bit MCG Passes PractRand
  9. Critiquing PCG's streams (and SplitMix's too)
  10. Bugs in SplitMix(es)
  11. You don't have to use PCG!
  12. PCG Passes PractRand
  13. History of the PCG Paper

2015 7

  1. Ease of Use without Loss of Power
  2. Simple Portable C++ Seed Entropy
  3. Everything You Never Wanted to Know about C++'s random_device
  4. Developing a seed_seq Alternative
  5. C++ Seeding Surprises
  6. Stanford Colloquium Talk
  7. A Place for News