Why is it that the plural of one goose is geese but the plural of moose is moose? Same goes for house and louse. The plurals are houses and lice, respectively.
This page answers most of your question quite well, I think. The relevant summary is that English (a) has major influences from a very wide range of sources (b) is rooted in Old English, which has several pluralisation schemas for different classes of word. So some Old English words pluralise by suffixing 's', some by suffixing 'en', some with a vowel shift and some stay the same. Some words (ox/oxen, louse/lice) have kept their old plurals, and others have 'normalised' due to pressure on the language to be regular (cow/kine). Wikipedia has a nice reference list if you feel like exploring.