The RDKit has an implementation of the MaxMin algorithm (Ashton, M. et. al., Quant. Struct.-Act. Relat., 21 (2002), 598-604) for diversity picking. This provides a computationally efficient method for picking diverse subsets of molecules from a larger set.
This post explores the performance of the different ways of invoking the algorithm and does a bit of looking at the scaling of the runtime with set size.