diff --git a/src/IdentityServer/Services/Default/NumericUserCodeGenerator.cs b/src/IdentityServer/Services/Default/NumericUserCodeGenerator.cs
index 370063bb1..573a9c878 100644
--- a/src/IdentityServer/Services/Default/NumericUserCodeGenerator.cs
+++ b/src/IdentityServer/Services/Default/NumericUserCodeGenerator.cs
@@ -36,27 +36,7 @@ public class NumericUserCodeGenerator : IUserCodeGenerator
///
public Task GenerateAsync()
{
- var next = Next(100000000, 999999999);
+ var next = RandomNumberGenerator.GetInt32(100000000, 1000000000);
return Task.FromResult(next.ToString());
}
-
- private int Next(int minValue, int maxValue)
- {
- if (minValue > maxValue) throw new ArgumentOutOfRangeException(nameof(minValue));
- if (minValue == maxValue) return minValue;
- long diff = maxValue - minValue;
-
- while (true)
- {
- var uint32Buffer = RandomNumberGenerator.GetBytes(8);
- var rand = BitConverter.ToUInt32(uint32Buffer, 0);
-
- const long max = 1 + (long) uint.MaxValue;
- var remainder = max % diff;
- if (rand < max - remainder)
- {
- return (int) (minValue + rand % diff);
- }
- }
- }
}
\ No newline at end of file