Approach to protein design in which protein variants with desired properties are selected from a large library of variants. Variants emerging from the selection are then randomly mutated, and the selection/mutation process is iterated until the desired properties are optimized.