NetLogo 每次从某个列表中获取不同的随机数

NetLogo get each time different random number from certain list

假设我有列表

let mylist [0 1 2 3]

我想从这个数组中生成随机数,它在每个报价中都与前一个不同。

示例:勾选一个 - 生成 0 勾选两个 - 生成 2 勾选三 - 生成 1 勾选四 - 生成 3

现在我有

let mylist [0 1 2 3]
let x one-of mylist

但是 returns 例如两个连续的报价 0.

有什么建议吗?谢谢。

一种方法是存储上次报价中使用的号码,将其与当前报价中选择的号码进行比较,如果相同则选择不同的号码。

globals [
  previous_number
]

to generate  

  let current_number previous_number
  let mylist [ 0 1 2 ]
  while [ current_number = previous_number ] [
    set current_number one-of mylist
  ]
  set previous_number current_number
  print current_number

end