The list of questions and answers for each round is built before the exercise is ran to prevent list generation logic from interfering with application timing. The list is generated by a loop that randomly selects a word from the provided word list. If the word is not in the used words list it is selected for the list of questions. An array is used to count and balance the condition types of the words so that all condition types are evenly distributed throughout the question list. Once a word is selected that meets the required conditions the question string is generated and the answer letters are randomized. The formatted question data is then added to the question list and the current word is added to the used word list. The loop then continues until the question count has been met.