Genetic Algorithms for Constructing Effective Nuclear Shell-Model Hamiltonians