This thesis proposes a new distributed architecture called Pool GA for genetic algorithms. In Pool GA, candidate solutions called individuals are stored in a distributed pool. Processors extract individuals from the pool to perform genetic algorithm computations and insert resulting individuals back in the pool. This approach is tailored for loosely coupled distributed systems and can tolerate processor failures. Simulation results on benchmark functions and a product design problem show Pool GA achieves solutions faster with more processors. It also tolerates high percentages of crash and Byzantine processor failures.