Generating uniformly distributed random latin squares | Synapse