This paper studies a strategic supply chain management problem to design reliable networks that perform as well as possible under normal conditions, while also performing relatively well when disruptions strike. We present a mixed-integer programming model whose objective is to minimize the nominal cost (the cost when no disruptions occur) while reducing the disruption risk using the p-robustness criterion (which bounds the cost in disruption scenarios). We propose a hybrid metaheuristic algorithm that is based on genetic algorithms, local improvement, and the shortest augmenting path method. Numerical tests show that the heuristic greatly outperforms CPLEX in terms of solution speed, while still delivering excellent solution quality. We demonstrate the tradeoff between the nominal cost and system reliability, showing that substantial improvements in reliability are often possible with minimal increases in cost. We also show that our model produces solutions that are less conservative than those generated by common robustness measures.