Derandomization studies how to reduce or eliminate randomness in algorithms while preserving guarantees. Tools include limited independence, pairwise-independent hash families, expander walks, and pseudorandom generators. Universal hashing provides strong guarantees for hashing-based algorithms and data structures.