Why does map reduce have a shuffle step?
The shuffle step occurs to guarantee that the results from mapper which have the same key (of course, they may or may not be from the same mapper) will be send to the same reducer. So, the reducer can further reduce the result set.

for example, your WordCount mappers emit 

(hot, 1)
(cold, 1)
(hot, 1)
(rain, 1)
(cold, 1)


the shuffle step will ensure that

(hot, 1), (hot, 1)


get to the same reducer.
So, you get your final answer 

(hot, 2)


and the same applied for (cold,1) and (rain,1)