Using *rand in a choice

@dillpickle1996, OK, assumining I have understood what you are looking for correctly, this should cover you.
This will give 5 name options, then if you re-roll the names you get a new list of 5 names without repeating the list.
If you re-roll again it will exit as there are no names left (can make it reset to the beginning if you want).

*create human_name ""

*create human_name_1 "Arthur"
*create human_name_2 "Alice"
*create human_name_3 "Christopher"
*create human_name_4 "Beatrice"
*create human_name_5 "Frederick"
*create human_name_6 "Elizabeth"
*create human_name_7 "James"
*create human_name_8 "Grace"
*create human_name_9 "Louis"
*create human_name_10 "Matilda"

*create human_name_picked_1 false
*create human_name_picked_2 false
*create human_name_picked_3 false
*create human_name_picked_4 false
*create human_name_picked_5 false
*create human_name_picked_6 false
*create human_name_picked_7 false
*create human_name_picked_8 false
*create human_name_picked_9 false
*create human_name_picked_10 false

*create names_left 5


*create Option_1 0
*create Option_2 0
*create Option_3 0
*create Option_4 0
*create Option_5 0

*label RerollTheNames

*label Option_1_reroll
*rand Option_1 1 10
*if human_name_picked[Option_1] = true
    *goto Option_1_reroll
*set human_name_picked[Option_1] true

*label Option_2_reroll
*rand Option_2 1 10
*if (Option_2 = Option_1)
    *goto Option_2_reroll
*if human_name_picked[Option_2] = true
    *goto Option_2_reroll
*set human_name_picked[Option_2] true

*label Option_3_reroll
*rand Option_3 1 10
*if ((Option_3 = Option_1) or (Option_3 = Option_2))
    *goto Option_3_reroll
*if human_name_picked[Option_3] = true
    *goto Option_3_reroll
*set human_name_picked[Option_3] true

*label Option_4_reroll
*rand Option_4 1 10
*if ((Option_4 = Option_1) or ((Option_4 = Option_2) or (Option_4 = Option_3)))
    *goto Option_4_reroll
*if human_name_picked[Option_4] = true
    *goto Option_4_reroll
*set human_name_picked[Option_4] true

*label Option_5_reroll
*rand Option_5 1 10
*if (((Option_5 = Option_1) or (Option_5 = Option_2)) or ((Option_5 = Option_3) or (Option_5 = Option_4)))
    *goto Option_5_reroll
*if human_name_picked[Option_5] = true
    *goto Option_5_reroll
*set human_name_picked[Option_5] true

*choice
    #Pick name ${human_name[Option_1]}
        *set human_name human_name[Option_1]
        You picked ${human_name}
        *finish
    #Pick name ${human_name[Option_2]}
        *set human_name human_name[Option_2]
        You picked ${human_name}
        *finish
    #Pick name ${human_name[Option_3]}
        *set human_name human_name[Option_3]
        You picked ${human_name}
        *finish
    #Pick name ${human_name[Option_4]}
        *set human_name human_name[Option_4]
        You picked ${human_name}
        *finish
    #Pick name ${human_name[Option_5]}
        *set human_name human_name[Option_5]
        You picked ${human_name}
        *finish
    #Reroll the names
        *if names_left = 0
            There are no more names to pick
            *finish
        *set names_left - 5
        *goto RerollTheNames    

@armadillidium - Yeah, I wondered that too. I just wanted to see if I could figure it out.

8 Likes