To expand on Ben's answer, many English speakers get confused because we don't realize that the English spelling of many words does not actually reflect very closely how we actually say them. We get so used to them that we automatically associate the English spelling with the pronunciation we already know, without thinking of whether the vowels used are actually the "right" ones for those sounds.
(Arguably, they are "right" by definition, because that's how English works, but when we're going to another language, English rules don't apply anymore)
To start with, English has the concept of "hard" and "soft" vowels, but then on top of that many times we don't even follow our own rules for pronouncing those.
The English vowels "a", and "o" are particularly bad with this, as their pronunciation in English can actually be all over the place (though actually "e", and "u" are often just as bad).
To make matters worse, many of these vowel sounds that we end up using don't even exist in Japanese (there's just no good way to represent them). Japanese has a fairly limited set of vowel sounds, and they're very rigid. "オ" always means "oh", "ア" always means "ah". In English, sometimes, either "o" or "a" can be pronounced "uh", but in Japanese, there's no such thing as "uh" at all (you might think "ウ", but that's always "oo", not "uh". "エ" is "eh", which is close, but still not the same, etc).
So when transliterating English words into Japanese, first, it's based on the sound, not the English spelling, and second, many sounds have to be modified a bit to fit the available options. On top of this, one needs to take into account that many times this was being done by Japanese people who didn't even speak English, who'd just heard the English word a couple of times and learned its meaning, and in some cases it was a word that might not even have been being spoken by a native English speaker when they heard it (for example, much of the first communication with outsiders was via Portugese traders, who sometimes used English words as well, but with a Portugese accent, etc).
So in many cases, if you actually sound out the Japanese words, you'll find they sound much closer to the English pronunciation than they would if you sounded out the English spelling according to Japanese vowel rules. In many cases, however, even this isn't going to really sound the same, just because Japanese can't do that, and in some cases, things are just weird because of history, so if you're looking for any strong "rules" about this, you won't really find them.
My general advice is don't try to think of these as English words anymore in the first place: They're actually their own Japanese words, and should be pronounced like Japanese words. The fact that they once-upon-a-time had some relationship to English is just an etymological curiosity, and not that important, just like how many English words were once derived from Latin or German, but that doesn't mean they're actually Latin/German words anymore, and we don't try to pronounce them the same way that the old Germans or Romans did.