From smart cities to factories and business, many decision-making processes in our society involve NP-hard optimization problems. In a real environment, these problems are frequently large-scale, which limits the potential of exact optimization methods and justifies the use of metaheuristic algorithms in their resolution. Real-world problems are also distinguished by high levels of dynamism and uncertainty, which affect the formulation of the optimization model, its input data, and constraints. However, metaheuristic algorithms usually assume deterministic inputs and constraints, and thus end up solving oversimplified models of the real system being considered, casting doubt on validity and even meaning of the results and recommendations. Accordingly, this paper argues that approaches combining simulation with metaheuristics, i.e., simheuristics, not only constitute a natural extension of metaheuristics, but also should be considered as a "firstresort" method when dealing with large-scale stochastic optimization problems, which constitute most realistic problems in industry and business. To this end, this paper highlights the main benefits and limitations of these simheuristic algorithms, reviews some examples of applications to different fields, and analyzes the most suitable simulation paradigms to be used within a simheuristic. Finally, we outline a series of best practices to consider during the design and implementation stages of a simheuristic algorithm.