Abstract: Metaheuristics can be considered a major subfield of stochastic optimization which employ some degree of randomness to find approximate optimal solutions to hard problems. The metaheuristics, called as high-level soft computing strategies, are nature-inspired methods and used to find approximate solutions when no other known methods work. An important step in the optimization process with metaheuristics is classifying the optimization problem since the metaheuristic algorithms are specified according to the type of optimization problem. Generally, the problems are categorized as (i) Continuous Optimization versus Discrete Optimization, (ii) Unconstrained Optimization versus Constrained Optimization, (iii) Deterministic Optimization versus Stochastic Optimization, and (iv) Single Objective or Multi-Objective Optimization. In this study, general basic information about metaheuristics are explained with comparison of gradient based optimization methods. Metaheuristic optimization algorithms are introduced for single and multi-objective optimization (MOO) problems, e.g. Simulated Annealing (SA), Genetic Algorithm (GA). Working principle of a well-known MOO tool, called NSGA-II (Non-dominated Sorting Genetic Algorithm-II), is given for continuous multi-objective problems. And also, application of metaheuristics to several combinatorial optimization problem is presented.