From a variation of yea, itself from Middle English ya, ye, from Old English ġēa (“yes”), from Proto-Germanic *ja (“yes; thus, so”), from Proto-Indo-European *yē (“already”). Cognate with West Frisian ja, Dutch ja, German ja, Danish ja, Norwegian Bokmål ja, Norwegian Nynorsk ja and Swedish ja, Icelandic já. Interestingly, modern "yeah" maintains nearly the same pronunciation as its Old English ancestor (Old English "ġēa" being /jæːɑ/, Modern English "yeah" being [jɛə̯] or [jæə̯]) and consequently has really no other words that rhyme with it in rhotic dialects. The reason behind its real lack of pronunciation shift is unknown, as other words that had similar pronunciations in Old English did shift in pronunciation. It is possible that, due to its constant use (and its never being accepted as a formal term), its pronunciation has remained rigidly in place.
yeah (not comparable)
Note: Many languages have no equivalent of this word; in those cases, the translations given here are for yes.