Solution (source code)

= Solution

A good <pseudorandom number generator> for <Monte Carlo integration> should have approximately uniform outputs, a period much longer than the intended run, and negligible detectable dependence both serially and in higher-dimensional tuples. It should be fast, reproducible from a seed, portable enough to reproduce a calculation, and numerically precise enough for the required tail probabilities. Values strictly inside $(0,1)$ avoid singularities in logarithmic <inverse transform sampling>. Separate simulations also need well-separated streams or seeds, rather than accidentally identical streams. A <pseudorandom number generator> is deterministic; these properties mean that it imitates independent <uniform distributions> sufficiently well for the application, not that its outputs are literally independent.