A genetic algorithm is used with density functional theory to investigate the catalytic properties of 38- and 79-atom bimetallic core-shell nanoparticles for the oxygen reduction reaction. Each particle is represented by a two-gene chromosome that identifies its core and shell metals. The fitness of each particle is specified by how close the d-band level of the shell is to that of the Pt(111) surface, a catalyst known to be effective for oxygen reduction. The genetic algorithm starts by creating an initial population of random core-shell particles. The fittest particles are then bred and mutated to replace the least-fit particles in the population and form successive generations. The genetic algorithm iteratively refines the population of candidate catalysts more efficiently than Monte Carlo or random sampling, and we demonstrate how the average energy of the surface d-band can be tuned to that of Pt(111) by varying the core and shell metals. The binding of oxygen is a more direct measure of catalytic activity and is used to further investigate the fittest particles found by the genetic algorithm. The oxygen binding energy is found to vary linearly with the d-band level for particles with the same shell metal, but there is considerable variation in the trend across different shells. Several particles with oxygen binding energies similar to Pt(111) have already been investigated experimentally and found to be active for oxygen reduction. In this work, many other candidates are identified.