[[:Category:German irregular verbs]]
I think you have it a bit backwards. Not all verbs that have vowel changes are strong verbs. Rather, (almost) all verbs that have a -t suffix are weak verbs, even if they have vowel changes in the past tense. I will try to explain the origin of the verbs in that category.
- stehen, bestehen, erstehen, verstehen - This verb was already irregular in Proto-Germanic. It had two different present tense stems (*stand- and *stā-/*stai-) but a single past tense stem (*stōþ-). gehen was also like this.
- brennen, kennen, nennen, senden, wenden - These verbs are actually weak, and the vowel change is because of umlaut in the present tense that disappears in the past tense (so the e should really be ä?). This is called Rückumlaut in German.
- bringen, mitbringen - This verb was irregular already in Proto-Germanic. It was a weak verb, but for some reason it also had a vowel change.
- dürfen, können, mögen, müssen, sollen, wissen - These are preterite-present verbs. They are neither strong nor weak, or both, depending on how you see it. The past tense is weak (with -t) but the present tense has a vowel change between the singular and plural, like the past tense of strong verbs used to have.
- haben - This is a weak verb that has some irregular forms because it is so frequently used.
- mahlen, salzen - These were strong verbs (the original past tense would have been *muhl and *si(e)lz) but the past tense was replaced by a weak past tense instead. However, the strong past participle (ending in -en) was kept, making them a kind of strong-weak mixed verb. Dutch has many more of these verbs: Category:Dutch mixed verbs.
- sein - Was irregular in Proto-Germanic. Its present is irregular, the past tense is taken from a completely different stem, which was strong.
- tun, vertun - Was irregular in Proto-Germanic.
- werden - Was originally a normal strong verb like helfen, with the past *ward and *worden. The past tense now has the stem wurd- instead for reasons I don't know.
- wollen - Was irregular in Proto-Germanic. The past tense was weak, but the present tense had no indicative forms originally, only subjunctive.