You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建每次调用返回不同值的随机数生成器?VB代码返回重复值

解决VB中Random每次生成相同数字的问题

问题出在你每次需要随机数时都新建了一个Random实例。Random默认使用系统当前时钟作为种子,如果代码执行速度很快,多次创建的Random对象会使用相同的种子,导致生成完全相同的随机数序列。

修复方案

将Random实例声明为类级别的成员变量,只初始化一次,之后每次需要随机数时调用该实例的Next()方法即可:

' 在类的顶部声明Random实例(类级别变量)
Private rand As New Random()

' 在需要生成随机数的方法中调用
Dim approval As Integer = rand.Next(0, 9)

原理说明

  • 类级别的Random实例只会在类初始化时创建一次,种子也只会设置一次。
  • 每次调用rand.Next(0, 9)时,都会基于之前的随机数序列生成下一个不同的数值,实现真正的随机效果。
  • 如果需要生成不同范围的随机数,只需要调整Next()方法的参数即可(比如rand.Next(1, 100)生成1到99的整数)。

内容的提问来源于stack exchange,提问作者Daniel Stiff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:52:33