From 152146e782d401aa1ce7d989d62306aabc85f22e Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 4 Jan 2019 02:00:44 -0800 Subject: DRY: Implement GetRand using FastRandomContext::randrange --- src/random.cpp | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'src') 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::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 -- cgit v1.2.3