Imports System
Imports System.Security.Cryptography
Class Program
Public Shared Sub Main()
Dim minValue As Integer = 1
Dim maxValue As Integer = 100
Dim randomNumber As Integer = GetSecureRandomNumber(minValue, maxValue)
Console.WriteLine($"Random Number: {randomNumber}")
End Sub
Private Shared Function GetSecureRandomNumber(ByVal minValue As Integer, ByVal maxValue As Integer) As Integer
If minValue >= maxValue Then Throw New ArgumentOutOfRangeException(NameOf(minValue), "minValue must be less than maxValue.")
Dim randomBytes As Byte() = New Byte(3) {}
Using rng As RandomNumberGenerator = RandomNumberGenerator.Create()
rng.GetBytes(randomBytes)
End Using
' Convert bytes to a positive integer
Dim randomInt As Integer = Math.Abs(BitConverter.ToInt32(randomBytes, 0))
' Scale the random number to the desired range
Return minValue + (randomInt Mod (maxValue - minValue))
End Function
End Class
' run:
'
' Random Number: 71
'