Utility class implementing functions for random number generation
Currently random numbers are generated by calling the rand() method, which is terrible.
Besides implementing the generation of random numbers by using <random>, we want a utility class to generate random numbers. The baseline implementation should use the common c++11 way to generate random numbers, but we want to be able to insert some "fake" random engine. This may be useful for testing or for other experimental stuff.