C# System.Random 接下来出来排序

C# System.Random Next comes out sorted

我正在尝试访问数组中的随机元素,但我使用的随机生成器一直按顺序给我数字,如下所示:

数字总是按顺序出现,永远不会完全随机(即下一个数字总是更大,直到达到最大值,然后再次从低数字开始)。这也可以是递增的或递减的。

我正在使用种子随机对象和 Random.Next(-100, 100)。 这与 MSDN Random.Next page

上展示的行为不同

我只能想到Unity打包的.Net版本没有最新的Random?对这种困惑有什么解决办法吗?

//Example
//Seed and ods set before the Awake method is called
public int seed;
public GameObject[] pathPartOds;

Random random;
GameObject[] path;

void Awake () 
{
    random = new Random (seed);
}

void CreatePath (int length) 
{
    path = new GameObject[length];

    for (int i = 0; i < length; i++)
        path[i] = pathPartOds[random.Next (0, pathPartOds.length)];
}

使用了多个种子,它们都给出了相同的结果,我一直在使用随机整数创建种子

您需要恰好 一次 创建 Random 的一个实例,并将其作为参数传递到绘制随机数的函数中。

否则你会破坏生成器的统计属性,因为它是以系统(即非随机)方式播种的。这解释了输出的分段单调性。