Uses of randomness in algorithms and protocols | Synapse