diff options
Diffstat (limited to 'src/random.cpp')
-rw-r--r-- | src/random.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/random.cpp b/src/random.cpp index e4c23ceac6..f52b5837aa 100644 --- a/src/random.cpp +++ b/src/random.cpp @@ -503,17 +503,7 @@ void RandAddSeedSleep() { ProcRand(nullptr, 0, RNGLevel::SLEEP); } uint64_t GetRand(uint64_t nMax) noexcept { - if (nMax == 0) - return 0; - - // The range of the random source must be a multiple of the modulus - // to give every possible output value an equal possibility - uint64_t nRange = (std::numeric_limits<uint64_t>::max() / nMax) * nMax; - uint64_t nRand = 0; - do { - GetRandBytes((unsigned char*)&nRand, sizeof(nRand)); - } while (nRand >= nRange); - return (nRand % nMax); + return FastRandomContext().randrange(nMax); } int GetRandInt(int nMax) noexcept |