用随机不重复的数字填充数组

本文关键字:数字 填充 数组 随机 | 更新日期: 2023-09-27 18:02:43

我需要用从0到11的随机数填充大小为12的数组,但这些数字需要不重复。例如{10,2,4,8,6,3,1,9,0,7,5,11}这是我尝试的工作,但它没有工作

Random rnd = new Random(); 
      for (int i = 0; i <= 11; i++) 
      {
          int MoveNumber = rnd.Next(0, 11);
          for (int z = 0; z <= 11; z++) 
          {
              if (usednums[z] != MoveNumber) 
              {
                  usednums[i] = MoveNumber;
              }
          }          
      } 

用随机不重复的数字填充数组

解决方案是创建一个充满数字的数组并对其进行洗牌:

var random = new Random();
var numbers = Enumerable.Range(0, 12).OrderBy(r => random.Next()).ToArray();