Previously, CIlib handled random number generation by creating a new stream of random numbers for each RandomProvider that was created. This made it very difficult (read: impossible) to reproduce the results of simulations.
The new changes that were merged recently fixes this by using one RNG per sample. This post will explain how to use the new system.