Failure Detection and Randomization: A Hybrid Approach to Solve Consensus