Columbus shocked many, including myself, when they took Dubois over Puljujarvi in 2016 but they've been proven 'correct' thus far. Draisaitl was seen as a "reach" to some. Just going back a few more years:
2016:
Bob/TSN: Matthews, Laine, Puljujarvi, Tkachuk, Dubois
Actual: Matthews, Laine, Dubois, Puljujarvi, Juolevi
The top of the board nearly went a much different direction. Near 3 way trade between Columbus, Edmonton, and Calgary to shuffle picks. Columbus would have still gotten Dubois at #4, Edmonton was targeting Sergachev at #6, and presumably Calgary would have taken Puljujarvi at #3. But Edmonton got cold feet.
2015:
Bob/TSN: McDavid, Eichel, Hanifin, Marner, Strome
Actual: McDavid, Eichel, Strome, Marner, Hanifin
Could have a little different as Arizona was asking about Dougie Hamilton from Boston. Bruins asked for the #3 pick which they would have used on hometown kid Hanifin. Arizona offered 2016 1st instead, Boston instead took 2015 picks from Calgary.
2014:
Bob/TSN: Ekblad, Reinhart, Bennett, Draisaitl, Dal Colle
Actual: Ekblad, Reinhart, Draisaitl, Bennett, Dal Colle
2013:
Bob/TSN: MacKinnon, Jones, Drouin, Barkov, Lindholm
Actual: MacKinnon, Barkov, Drouin, Jones, Lindholm
2012:
Bob/TSN: Yakupov, Murray, Forsberg, Reinhart, Galchenyuk
Actual: Yakupov, Murray, Galchenyuk, Reinhart, Rielly
Goofy year for sure with Galcheyuk, Rielly, and Koekkoek missing most of the season due to injury but still landing in the top 10. Allegedly Edmonton's scouts wanted Ryan Murray but the owner vetoed and made them take the "consensus" #1.