Does anybody know exactly how the algorithm works that made the new draw for Champions League?
Wikipedia says: The 36 teams were manually drawn and then automated software digitally drew their eight different opponents at random, determining which of their matches will be at home and which ones away. Each team will face two opponents from each of the four pots, one at home and one away. Teams cannot face opponents from their own association, and could only be drawn against a maximum of two sides from the same association. Giving UEFA as source.
However, these reveal nothing about how the algorithm checks at each stage whether satisfying the conditions is still possible. It is also not clear to me whether at each phase an opponent is drawn from the remaining possible opponents with uniform probability, or opponents are giving with some other distribution.
I would like to see a description (code/pseudocode/sketch) of the algorithm that they use; I couldn't find it anywhere online. I do not want to see other users proposed solutions for this problem.