In this survey, we focus on problems of decision making under uncertainty. First, we clarify the meaning of the word "uncertainty" and we describe the general structure of problems that fall into this class. Second, we provide a list of problems from the Constraint Programming, Artificial Intelligence, and Operations Research literatures in which uncertainty plays a role. Third, we survey existing modeling frameworks that provide facilities for handling uncertainty. A number of general purpose and specialized hybrid solution methods are surveyed, which deal with the problems in the list provided. These approaches are categorized into three main classes: stochastic reasoning-based, reformulation-based, and sample-based. Finally, we provide a classification for other related approaches and frameworks in the literature.