This chapter provides an overview of the methods that have been developed since 1977 for solving various reliability optimization problems. Also discussed are applications of these methods to various types of design problems. The chapter addresses heuristics, metaheuristic algorithms, exact methods, reliability-redundancy allocation, multiobjective optimization and assignment of interchangeable components in reliability systems. Like other types of applications, exact solutions for reliability optimization problems are not necessarily desirable because exact solutions are difficult to obtain and even when they are available, their utility is marginal. A majority of the recent work in the area is devoted to the development of heuristic and metaheuristic algorithms for solving optimal redundancy allocation problems.