The Proto-Indo-European root *wer- "to turn, bend" in the zero-grade form *wr̥t- became Proto-Germanic *wurþi and then Old English wyrd "fate", and then weird. weird originally meant "fate", as in the "weird sisters", the three fates of Greek and Roman mythology. Apparently the meaning of "odd-looking, uncanny" is modeled on Shakespeare's odd-looking and uncanny weird sisters in Macbeth.
The nasalized variant *wremb- became Greek ῥόμβος rhombos "rhombus, spinning top". The form *wr̥-mi- became Old English wyrm "serpent", then worm.
*wr̥-mi- is connected to *kʷr̥-mi-, both words meaning "worm", and the second word being a variant (or "rhyme word") of the first. *kʷr̥-mi- became Sanskrit कृमिज kṛmija "produced by worms (as silk)" or "(red dye) produced by worms". (The ja suffix means "born or descended from, produced or caused by" and is from jan "to be born" from PIE *ǵenh₁- "to give birth".)
The Sanskrit word was borrowed into Arabic as qirmiz "kermes insect", and this was borrowed into Medieval Latin as cremesīnus, which was borrowed into Middle English as cremesin, which became crimson.