Software: Practice and Experience, 55(2): 298-306, . doi:10.1002/spe.3379

[PDF] [BIB] [DOI] [PUB] [arXiv] [CODE]

Abstract

We present algorithms for generating small random samples without replacement. We consider two cases. We present an algorithm for sampling a pair of distinct integers, and an algorithm for sampling a triple of distinct integers. The worst-case runtime of both algorithms is constant, while the worst-case runtimes of common algorithms for the general case of sampling k elements from a set of n increase with n. Java implementations of both algorithms are included in the open source library ρμ.