Could be a bad rom (GoodN64 can verify that). Cheats can cause problems too. If neither of those apply, there is the occasional random crash. There's not much explanation for those, but temporarily changing the self-modifying code method to "protect memory" will often allow you to clear a troublesome spot.