What is a good random number generator to use for a game in C++?
My considerations are:
I'd vote for the Mersenne Twister as well. Implementations are widely available, it has a very large period of 2^19937 -1, is reasonably fast and passes most randomness tests including the Diehard tests developed by Marsaglia. rand() and Co., being LCGs, produce lower quality deviates and their successive values can be easily inferred.
One point of note, however, is to properly seed MT into a state that passes randomness tests. Usually a LCG like drand48() is used for that purpose.
I'd say the MT satisfies all the requirements you've set (provably), and it'd be an overkill to go for something like MWCG imo.