I use an evolutionary game to investigate how the level of noise influences cooperation and efficiency in a dynamic setting. Players choose strategies to play indefinitely repeated prisoner's dilemmas; the strategies are represented by finite automata, and complexity costs are imposed. Players update their strategies based on the successfulness of the strategies. Using both theoretical analysis and computational experiments, I show that the presence of noise dramatically changes the system dynamics. The effect of noise interacts with the benefit of cooperation: noise can increase cooperation, but only when its level is low and the benefit of cooperation is high. In the noise-free environment, I observe constant oscillations between cooperation and defection. In contrast, the presence of noise makes Win-Stay Lose-Shift (WSLS) a successful strategy when the benefit of cooperation is sufficiently high, making cooperation relatively stable and leading to an efficient outcome.