**Question :**

**Random integer in VB.NET,**

**Answer :**

I need to generate a random integer between 1 and n (where n is a positive whole number) to use for a unit test. I don’t need something overly complicated to ensure true randomness – just an old-fashioned random number.

How would I do that?

,

As has been pointed out many times, the suggestion to write code like this is problematic:

`Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer Dim Generator As System.Random = New System.Random() Return Generator.Next(Min, Max) End Function `

The reason is that the constructor for the `Random`

class provides a default seed based on the system’s clock. On most systems, this has limited granularity — somewhere in the vicinity of 20 ms. So if you write the following code, you’re going to get the same number a bunch of times in a row:

`Dim randoms(1000) As Integer For i As Integer = 0 to randoms.Length - 1 randoms(i) = GetRandom(1, 100) Next `

The following code addresses this issue:

`Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Integer ' by making Generator static, we preserve the same instance ' ' (i.e., do not create new instances with the same seed over and over) ' ' between calls ' Static Generator As System.Random = New System.Random() Return Generator.Next(Min, Max) End Function `

I threw together a simple program using both methods to generate 25 random integers between 1 and 100. Here’s the output:

`Non-static: 70 Static: 70 Non-static: 70 Static: 46 Non-static: 70 Static: 58 Non-static: 70 Static: 19 Non-static: 70 Static: 79 Non-static: 70 Static: 24 Non-static: 70 Static: 14 Non-static: 70 Static: 46 Non-static: 70 Static: 82 Non-static: 70 Static: 31 Non-static: 70 Static: 25 Non-static: 70 Static: 8 Non-static: 70 Static: 76 Non-static: 70 Static: 74 Non-static: 70 Static: 84 Non-static: 70 Static: 39 Non-static: 70 Static: 30 Non-static: 70 Static: 55 Non-static: 70 Static: 49 Non-static: 70 Static: 21 Non-static: 70 Static: 99 Non-static: 70 Static: 15 Non-static: 70 Static: 83 Non-static: 70 Static: 26 Non-static: 70 Static: 16 Non-static: 70 Static: 75 `

That’s the answer **Random integer in VB.NET,** Hope this helps those looking for an answer. Then we suggest to do a search for the next question and find the answer only on our site.

**Disclaimer :**

The answers provided above are only to be used to guide the learning process. The questions above are open-ended questions, meaning that many answers are not fixed as above. I hope this article can be useful, Thank you