systems and methods are described for distributing pool resources . one method includes maintaining a plurality of groups of computing resources , wherein each group of the plurality of groups includes computing resources that share a respective combination of resource characteristics ; receiving a first request to perform a first test on a computing resource ; determining , from the plurality of groups of computing resources , a subset of groups of computing resources that include a respective combination of resource characteristics that satisfy the required characteristics of the first test ; shuffling the subset of groups and selecting a first group from the shuffled subset of groups ; selecting an available computing resource from the first group ; and causing the first test to be performed on the selected available computing resource from the first group .