A generic design model for evolutionary algorithms is proposed in this paper. The model, which was described by UML in details, focuses on the key concepts and mechanisms in evolutionary algorithms. The model not only achieves separation of concerns and encapsulation of implementations by classification and abstraction of those concepts, it also has a flexible architecture due to the application of design patterns. As a result, the model is reusable, extendible, easy to understand, easy to use, and easy to test. A large number of experiments applying the model to solve many different problems adequately illustrate the generality and effec-tivity of the model.