每次执行前要用Randomize初始化Randomize
AccID = Int((5 - 1 + 1) * Rnd + 1)

解决方案 »

  1.   

    rnd其实也是一个固定的算法,而它是以系统的一个随机子为起始值算出来的,
    而randomize能每次根据时间重新初始化这个随机子,这样才能用rnd实现真正的
    随机,比如你想产生一个从1到MAX的随机数i,可以:
    randomize
    i=rnd(1)*10000000 mod MAX
      

  2.   

    对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的前一个数作为下一个数的种子。在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子。Randomize [number]
    Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。
      

  3.   

    Randomize Timer
    x = Int(rnd*..........)
      

  4.   

    产生的是假随机数
    和TIME函数一起用就行了