The explosive growth of communications networks has stimulated much interest in algorithms for problems at the interface between networking and combinatorial optimization. In this talk, we present provably-good algorithmic strategies for a family of such problems that involve routing, wavelength assignment, network design and (distributed) resource allocation. Randomization plays a key role in our approaches; we will also spend a little time discussing the value of randomization in the broader computational context. Linear programming and multi-commodity flow are other key ingredients of the approaches presented in the talk.