我用客户端产生25个随机数作为题号在题库中抽题目。
Randomize Timer
For I = NowStarTm25 To 25
            If I >= 1 And I <= 7 Then IX = 1               '前1到7题用1类题
            If I >= 8 And I <= 14 Then IX = 2              '前8到14题用2类题
            If I >= 15 And I <= 21 Then IX = 3
            If I >= 22 And I <= 25 Then IX = 4
            bOK = True
            Do While bOK
                TmDown = Int((BmTm(Record(2).lBm).ty题目分类(IX).lStart - BmTm(Record(2).lBm).ty题目分类(IX).lEnd + 1) * Rnd + BmTm(Record(2).lBm).ty题目分类(IX).lEnd)     '随机一个题号
                For II = NowStarTm25 To I
                    If NowTm(II).lTmNo = TmDown Then
                        bOK = True
                        Exit For
                        Else
                            bOK = False
                    End If
                Next II
            Loop
            NowTm(I).lTmNo = BmTm(Record(2).lBm).OneChoose(TmDown).NoX
        Next I我调试时每次产生的随机数都不同,但我发现有个人做题产生的随机数多次几乎是一样的,第一次是7、10、9、14、.....第二次到15次产生的顺序还是7、10、9、14、.....只有中间有一两个数不一样,我已用了Randomize Timer了呀(每次是从Randomize Timer起运行的)。

解决方案 »

  1.   

    Randomize Timer 放在For语句下面
      

  2.   

    第一次、第二次都是选运行Randomize Timer,再产生随机数他们的种子不可能会一样,为什么产生的顺列中的数是一样的?(现在是一样的是不是说第一次、第二次、第三次产生的种子数是一样?)
      

  3.   

    将Randomize Timer改成Randomize试试
      

  4.   

    可以试下CryptGenRandom:http://www.m5home.com/bbs/dispbbs.asp?boardid=28&id=3225&star=1&page=1用它替换RND吧.