I draw random numbers using `<random>` from C++11. I do it by creating an instance `obj` of the following class (for the interested reader: It is taken from this [thread](https://stackoverflow.com/questions/15918758/how-to-make-each-thread-use-its-own-rng-in-c11/15919785?noredirect=1#comment22687933_15919785)):

```
class RNG
{
public:
    typedef std::mt19937 Engine;
    typedef std::uniform_real_distribution<double> Distribution;

    double operator()()
    {
        return distribution(engine);
    }
    Engine engine;
    Distribution distribution;
};

```

Calling `obj()` gives me the desired random number. Now, I have three functions that all have to use `obj`. Declaring `obj` global would work, but is it also correct? Or are there other (more correct) alternatives?