Randomization, Approximation, and Combinatorial Optimization Algorithms and Techniques