The list of conditions for each round is built before the exercise is ran to prevent list generation logic from interfering with application timing. The algorithm loops until the length of rounds is met. A balancer array is used to prevent conditions from being used for more than 1/3 of the total list. On each loop the balancer is checked and if the randomly selected condition count is not met the condition is added to the condition list. Once the condition list has been generated the experiment begins.