...wouldn't/couldn't have guessed...
Using "wouldn't have guessed" gives the meaning that it would be unexpected (an improbability) for him to guess that he would win the lottery.
Using "couldn't have guessed" gives the meaning that it would be impossible (an inability) for him to guess that he would win the lottery.
I would choose couldn't in this sentence because the intended meaning is not so much that he was unlikely to guess, but that he was unable to guess (or, more accurately, know) that he would win the lottery.
...would/could win the lottery.
Using "would win the lottery" means that he, in fact, went on to win the lottery. In other words, would is used in this context to express something either happening or not happening.
Using "could win the lottery" means that it is possible for him to win the lottery, but does not tell whether he did or didn't win.
Of these two, I would choose would in this sentence because the intended meaning is not that he had no idea it was possible for him to win the lottery, but that he had no idea it was going to happen.
Life is unpredictable. For instance, he couldn't have guessed he would win the lottery.