This paper describes a general, rigorous approach for robust optimal design. The method allows a designer to explicitly consider and control, as an integrated part of the optimization process, the effects of variability in design variables and parameters on a design. Variability is defined in terms of tolerances which bracket the variation of fluctuating quantities. A designer can apply tolerances to any model input and can analyze how the tolerances affect the design using either a worst case or statistical analysis. As part of design optimization, the designer can apply the method to find an optimum that will remain feasible when subject to variation, and/or the designer can minimize or constrain the effects of tolerances as one of the objectives or constraints of the design problem.