How?

It seems you like questions :). We use a random generator. You'll say which one, which type, which period, etc. The answer is we don't care. Even if the generator is bad, random numbers are used in many different parts of the game, so it has no effect. And moreover, players are an other source of randomness. These two points show that a basic generator is enough. But a better one will also work :).

We only need a generator able to provide us integers (several sizes) and floats (simple or double precisions). The generator is encapsulated behind an interface, so we can change it if needed. This interface provides basic functions such as to throw dice or dices.

An important point in the generator choice is the ability to use a seed (i.e. a number to initialize it).