I think this is wrong. It's well-documented that accesses to methods on *rand.Rand must be serialized, but it's incorrect to make any assumption about other partitioners. It should be up to the partitioner to decide whether or not it needs to be mutexed.