Visual Basic 语言参考   Rnd 函数请参见
数学摘要 | Randomize 语句
返回一个 Single 类型的随机数。Rnd[(number)]
参数
number 
可选。一个 Single 值或任何有效的 Single 表达式。 
返回值
如果 number 为 Rnd 生成 
小于零 每次都相同的数字,并将 number 用作种子。 
大于零 序列中的下一个随机数。 
等于零 最近生成的数字。 
未提供 序列中的下一个随机数。 备注
Rnd 函数返回小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:由于每一次后续调用 Rnd 函数都用序列中前一个生成的数作为下一个数的种子,因此对于任何给定的初始种子都会生成相同的数字序列。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有一个基于系统计时器的种子。若要生成某给定范围内的随机整数,可使用此公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是此范围的上限,而 lowerbound 是范围的下限。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
示例
本例使用 Rnd 函数生成一个 1 到 6 之间的随机整数值。Dim MyValue As Integer
MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.

解决方案 »

  1.   

    Visual Basic 语言参考   Randomize 语句请参见
    Rnd 函数
    初始化随机数生成器。Randomize [ number ]
    各部分说明
    number 
    可选。一个 Object 或任何有效的数值表达式。 
    备注
    Randomize 用 number 将 Rnd 函数的随机数生成器初始化,并给它一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的同一数字作为种子,并从此使用上一次生成的数字作为种子值。注意 若要重复随机数序列,请在使用带数值参数的 Randomize 之前先调用带负参数的 Rnd。使用带有相同 number 值的 Randomize 不会重复前一序列。
    示例
    本例使用 Randomize 语句将随机数生成器初始化。由于省略了数字参数,Randomize 使用来自 Timer 函数的返回值作为新种子值。Dim MyValue As Integer
    Randomize   ' Initialize random-number generator.
    MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.
      

  2.   

    Randomize
    For i = 0 To 4
        Label1(i) = Int((10 * Rnd) + 1)
        For j = 0 To i - 1
            Do Until Label1(i) <> Label1(j)
                Label1(i) = Int((10 * Rnd) + 1)
            Loop
        Next
    Next
    先 5个label1定义成数组
      

  3.   

    上边那个有点问题
    自己错的自己改:
    Randomize
    For i = 0 To 4
        Label1(i) = Int(10 * Rnd)
        For j = 0 To i - 1
            '检查重复 并重新生成随机数
            If Label1(i) = Label1(j) Then
                Label1(i) = Int(10 * Rnd)
                j=-1'从第一个数 重新检查
            end if
        Next
    Next
      

  4.   

    Private Sub Command1_Click()
    Dim B(10) As Boolean
    Dim k As Long
    Dim i As Long
    For i = 0 To 10
        B(i) = False
    Next i
    Randomize
    For i = 0 To 4
        Do
            k = (Rnd * 11000) Mod 11
            DoEvents
        Loop Until B(k) = False
        B(k) = True
        List1.AddItem Str(k)
    Next i
    End Sub