Builds the function for sampling from the input iterator at each round.

sample_range A 1-D array-like sequence, to be used as input to np.random.choice. Samples are generated randomly from the elements of the sequence.
replace A boolean indicating whether the sampling is done with replacement (True) or without replacement (False).
random_seed If random_seed is set as an integer, then we use it as a random seed for which clients are sampled at each round. In this case, we set a random seed before sampling clients according to a multiplicative linear congruential generator (aka Lehmer generator, see 'The Art of Computer Programming, Vol. 3' by Donald Knuth for reference). This does not affect model initialization, shuffling, or other such aspects of the federated training process.

A function that takes as input an integer round_num and integer size and returns a list of size elements sampled (pseudo-)randomly from the input sample_range.