必ず (kanarazu) means "without fail", while きっと means "with high probability". For sentences which mean that something is or should be at or near 100% probability, we use 必ず:
Ningen wa daredemo kanarazu (not "kitto") shinu.
All human beings will die without exception.
Ashita no asa made ni kanarazu shukudai wo dashite kudasai.
Make sure to give your homework by tomorrow.
きっと (kitto), on the other hand, refers to the speaker's personal beliefs or inference.
Tanaka-san wa kitto kuru yo.
I'm sure Tanaka-san will come.
For past events, one can use きっと when talking about a personal evaluation of what happened:
Tarou wa kinou kurasu wo yasundakara, kitto (not "kanarazu") byouki datta no darou.
Because Tarou was absent yesterday, I'm pretty sure he was sick.
But when one is talking about a past event that is verified to be accurate, one must use 必ず:
Tanaka-san wa, paatii ga aru to kanarazu (not "kitto") kita.
Note that the past sentence is not a personal evaluation.
Note also that 必ず is not normally used for negative sentences, but きっと may be so used.