Description

It fails in some cases with long long, because the result is evaluated in floating point
arithmetic, which only has a 53 bit mantissa. I tried to file this a while ago, but it failed
to go through and I forgot about it.

Thanks for reporting this bug. We've already fixed it, and the fix will be available in VC11. uniform_int_distribution has been completely rewritten to handle arbitrary ranges and arbitrary UniformRandomNumberGenerators using bitwise operations - the floating-point arithmetic has been completely eradicated. (This applies to shuffle() too.) Here's an example: