Simulation algorithms for the random-cluster model