Netlogo: Atribuir variável usando probabilidades

Como atribuir uma string ou variável inteira à tartaruga, usando probabilidades das variáveis em um grupo / lista? Por exemplo, é 0,4 de probabilidade de que uma variável específica seja usada de um grupo / lista específico. A função seleciona aleatoriamente a variável com base na probabilidade. Preciso usar o mesmo método depois para escolher uma variável (string) de uma lista de acordo com a probabilidade. Em python, deve ser:

import random
def random_value(probability_list, values):
    r = random.random()
    index = 0
    while(r >= 0 and index < len(probability_list)):
      r -= probability_list[index]
      index += 1
    value=values[index - 1]
    value_index=index-1
    return value,value_index

Eu tentei no Netlogo como abaixo (obtém erro que o índice é -1), mas existe uma maneira melhor?

globals [random_nr probabilities some_list index]
to initialize-variables
  set some_list[]
  set probabilities[]
end
to random_pick
  set random_nr random-float 1
  set probabilities [0.1 0.2 0.4 0.3]
  set some_list ["String1" "String2" "String3" "String4"]
  set index 0
  while [(random_nr >= 0) and (length probabilities < index)] [
   set random_nr random_nr - item index probabilities
   set index index + 1 ]
  set index index - 1
end

questionAnswers(2)

yourAnswerToTheQuestion