Real-world engineering problems often require concurrent optimisation of several design objectives. These objectives are conflicting in most of the cases. Such an optimisation is generally called multi-objective or multi-criterion optimisation. Unlike single-objective optimisations, which target a single best solution, multi-objective optimisations aim at a set of equally good solutions. Classical multi-objective methods have serious drawbacks. The most limiting one is that one needs to apply the optimisation method, as many times as different solution are required. Evolutionary computations are now well-known. They are based on the Darwinian natural selection theory. They have been proven to be much more efficient than the classical methods as they can provide a whole set of good solutions after a single optimisation process. This paper introduces multi-criterion optimisation and states the classical multi-criterion optimisation problem. We review the most successful evolutionary algorithms for multi-objective optimisation. For each of the described methods, we sketch the underlying advantages vs. disadvantages. We give some statistics about applied work, and we survey the works about the most recent applications of the reviewed algorithms to solve real-world problems in science and technological fields.