The Sampler base class not only defines the interface to samplers but also provides some common functionality for use by Sampler implementations.
The Halton Sampler generates not only points that are guaranteed to not clump too closely together, but also generates points that are simultaneously well distributed over all the dimensions of the sample vector.
The Random Sampler is using the random number generetor class RNG based on an unpublished manuscript by O’Neill: A family of simple fast space-efficient statistically good algorithms for random number generation.
The Sobol Sampler is very efficient to implement while also being extremly well distributed over all dimensions of the sample vector. The weakness of the Sobol’ points is that they are prone to structural grid artefacts before convergence.
Certain low-discrepancy sequences allow us to satisfy two desirable properties of samples: they generate sample vectors for a pixel’s worth of image samples such that the sample values for each pixel sample are well distributed with respect to each other, and simultaneuously such that the aggregate collection of sample values for all of the pixel samples in the pixel are collectively well distributed.