Why do halogens have odd numbers as oxidation number?
Because of the way we construct oxidation numbers.  Put an atom into a molecule with all electrons paired and all the bonds heteronuclear, and by assigning all the valence electrons to the more electronegative atom of each bond we render even number on each atom.  Combine that with an odd number required for a neutral atom and you count an odd difference, thus an odd oxidation number.

Note that I have assumed all electrons to be paired and all bonds as heteronuclear.  But, it is not always the case.  There could be homonuclear bonds as in the halogen element itself ($\ce{X_2}$), with an oxidation number = $0$.  Or there could be unpaired electrons on the halogen so we count an odd rather than even number of valence electrons per halogen atom.  $\ce{ClO}$ (chlorine oxidation number $+2$) and $\ce{ClO_2}$ ($+4$) are such examples.