private static long NextFactor()

in Microsoft.Shared.Dna.Hash/AffineHash.cs [450:466]


        private static long NextFactor(Random random, long minValue)
        {
            ulong result = 0UL;
            byte[] buffer = new byte[sizeof(ulong)];
            random.NextBytes(buffer);
            result = BitConverter.ToUInt64(buffer, 0);

            ulong m = (ulong)minValue;
            if (m > result)
            {
                result += m;
            }

            result &= AffineHash.BlockMask & ~1UL;
            result++;
            return (long)result;
        }