Vb.net 无重复随机数发生器

Vb.net 无重复随机数发生器,vb.net,random,Vb.net,Random,我是编程新手。我正在VB.net中制作一个应用程序。我希望在加载特定表单时,将生成一个随机数,即1或2或3。第二次加载表单时,将从1、2或3生成一个随机数,但与前面生成的随机数不同。当第三次加载表单时,将从1、2或3生成一个随机数,但与前两次不同,即不重复随机数 例如,如果第一次加载时,随机数为3,则第二次加载时,随机数应为1或2。若第二次形式荷载RN为2,则第三次形式荷载应为1 如果有人能帮助我在vb.net中编写这段代码,我将不胜感激。您可以从列表中获取下一个随机项,然后将其删除,这样就不能

我是编程新手。我正在
VB.net
中制作一个应用程序。我希望在加载特定表单时,将生成一个随机数,即
1或2或3
。第二次加载表单时,将从
1、2或3
生成一个随机数,但与前面生成的随机数不同。当第三次加载表单时,将从
1、2或3
生成一个随机数,但与前两次不同,即不重复随机数

例如,如果第一次加载时,随机数为3,则第二次加载时,随机数应为1或2。若第二次形式荷载RN为2,则第三次形式荷载应为1


如果有人能帮助我在vb.net中编写这段代码,我将不胜感激。

您可以从列表中获取下一个随机项,然后将其删除,这样就不能再次拾取

Dim rndList As New List(Of Integer) From {1,2,3}
Static rnd As New Random
Do Until rndlist.Count = 0
  'get the index by random
  Dim nextValue As Integer = rnd.Next(0, rndList.Count))
  'this is the value at the index
  Debug.Write(rndList(nextValue))
  'remove this item 
  rndList.RemoveAt(nextValue)
Loop

创建一个静态随机生成器,并对所有表单使用该实例。通常建议根据设计,每个线程或应用程序只能有一个随机生成器。只需制作一个标准的随机数生成器,将生成的数字存储在某个位置,然后当生成器再次运行时,添加一条语句,检查生成的数字是否等于您存储的任何数字。