Like the word “good”, “bad” has a very long history. Nobody knows quite where it came from. If it existed in Old English, it didn’t have exactly the same form, but there are several OE words that it MIGHT have come from. The first is not exactly a “word” at all; it’s the name “Badda.” In Old English, “Badda” was a given name, like “Badda Jones”. So maybe there was a “Badda” who so embodied the opposite of “good” that the name became part of the language. It’s possible, but you’d think that anybody that notorious might well have been mentioned in at least a few myths or legends, and nobody’s ever found one.
“Badda” also had a common nickname: “Bǣdel”, which is pretty close to the Old English word bǣdan. That meant to force someone to do something; to impel them. That’s something that could engender a bit of resentment, so “bad” could have emerged from it. And, of course, Old English wasn’t the only language being spoken in those parts — some of the other languages had words very similar to “bǣdan”, including “bēdian” (Anglo-Saxon), “baidjan” (Gothic), and “beiten” (Old High German); all of them meant pretty much the same thing, and all of them begin with a syllable that sounded a lot like “bad”.
There are a couple of other name-related theories about the origin of “bad.” “Badde” was a family name with some surviving records to prove it; there was a WilliamBadde who merited a couple of mentions around the 1220s, and a Petri Badde shows up about 40 years later. And possibly related to them in some way are places called “Bad-SomethingOrOther.” Most of those are in Germany, where “bad” means a spa or hot spring. And the English town of “Bath” has that name for the same reason. It might well have been pronounced more like “Bad” by some people.
Another “bad” place in England is the Battle of Badon, a conflict between the Britons and the Anglo-Saxon. The Britons won decisively, and according to the “Historia Brittonum”, they were led by some guy named Arthur: “The twelfth battle was on Mount Badon in which there fell in one day 960 men from one charge by Arthur; and no one struck them down except Arthur himself.” So the outcome of the Battle of Badon was certainly bad for some, but nobody is sure whether than led to the word itself. And while “bad” is part of place names in some other Germanic languages, you really don’t see it in English. There’s “bal” (Balmoral), which means a homestead; “ben” (Ben Nevis), which means a mountain; “bourne” (Bournemouth, Blackburn), which is a stream or river; and a few versions of “bury” (Glastonbury, Edinburgh), which means a fort; but there’s no close match to “bad.”
There was, by the way, another “bad” in English up to about the 1600s — a “bad” was some kind of wild cat. It might have been a particular species, or it might have referred to any wild cat, but as M.S. Brogyntyn put it in 1465: “Þe bade, þat is to say a cate of þe mounttayne, þe gray, þe foxe.” Nobody knows where that version of “bad” came from either.
So it’s still a mystery, which is too bad — but there could certainly be badder things (“badder” was a perfectly good word until about the 1700s), and it’s nowhere near the baddest (same story). But after all this time it’s still interesting — hasn’t gone bad, as it were. We’re not going to solve it here, so it’s time we bade it goodbye.