There are many alternatives to handle discrete optimization problems in applications. Problem-specific algorithms vs. heuristics, exact optimization vs. approximation vs. heuristic solutions, guaranteed run time vs. expected run time vs. experimental run time analysis. Here, a framework for a theory of randomized search heuristics is presented. After a brief history of discrete optimization, ... [Show full abstract] scenarios are discussed where randomized search heuristics are appropriate. Different randomized search heuristics are presented and it is argued why the expected optimization time of heuristics should be analyzed. Afterwards, the tools for such an analysis are described and applied to some well-known discrete optimization problems. Finally, a complexity theory of so-called black-box problems is presented and it is shown how the limits of randomized search heuristics can be proved without assumptions like NP≠P. This survey article does not contain proofs but hints where to find them.