Since the basic urand object depends on Unix
rand(), it is
neither the most efficient algorithm available (the Mersenne Twister
is generally better), nor is it necessarily acceptible in all cases.
All pseudo-random generators have some kind of structure to their
outputs, which may or may not be significant in the simulation. With
the UNURAN library or with GNUSL it is possible to select from a range
of different algorithms at runtime, making it easy to check that the
simulation results do not depend on the type of generator used.