Portfolio optimization has been studied extensively by researchers in computer science and finance, with new and novel work frequently published. Traditional methods, such as quadratic programming, are not computationally effective for solving complex portfolio models. For example, portfolio models with constraints that introduce nonlinearity and non-convexity (such as boundary constraints and cardinality constraints) are NP-Hard. As a result, researchers often use meta-heuristic approaches to approximate optimal solutions in an efficient manner. This paper conducts a comprehensive review of over 140 papers that have applied evolutionary and swarm intelligence algorithms to the portfolio optimization problem. These papers are categorized by the type of portfolio optimization problem considered, i.e., unconstrained or constrained, and are further categorized by single-objective and multi-objective approaches. Furthermore, the various portfolio models used, as well as the constraints, objectives, and properties in which they differ, are also discussed in a detailed analysis. Based on the findings of the reviewed work, guidance for future research in portfolio optimization is given. Possible areas for future work include dynamic portfolio optimization, predictive pricing, the further investigation of multi-objective approaches.