Supply chain network design (SCND) is one of the most crucial planning problems in supply chain management (SCM). Nowadays, design decisions should be viable enough to function well under complex and uncertain business environments for many years or decades. Therefore, it is essential to make these decisions in the presence of uncertainty, as over the last two decades, a large number of relevant publications have emphasized its importance. The aim of this paper is to provide a comprehensive review of studies in the fields of SCND and reverse logistics network design under uncertainty. The paper is organized in two main parts to investigate the basic features of these studies. In the first part, planning decisions, network structure, paradigms and aspects related to SCM are discussed. In the second part, existing optimization techniques for dealing with uncertainty such as recourse-based stochastic programming, risk-averse stochastic programming, robust optimization, and fuzzy mathematical programming are explored in terms of mathematical modeling and solution approaches. Finally, the drawbacks and missing aspects of the related literature are highlighted and a list of potential issues for future research directions is recommended.