C++ offers three basic pseudorandom number generators (PRNG) in its <random> standard library: a linear congruential (C-style) one, which is moderately fast and has state of one word of memory but has affinity for certain patterns on its spectral distribution, a lagged Fibonacci one, which is very fast but has larger state but can have clustering, and the Mersenne twister, which is very slow and has a large state but provides a very long sequent with broad spectral characteristics.
For what you're doing, the basic linear congruential engine (std::minstd_rand)
is likely good enough. It's just like the one in C, except it uses local state instead of global state so it's still better than C.
disclaimer: I implemented the tr1 <random> for GCC.