https://vlsiweb.com/constrained-randomization/