Consider a program $P_n$ which first unpacks $\Omega_n$, the first $n$ digits of $\Omega$, then runs all finite programs tallying $2^{-k}$ each time a program of length $k$ halts. $P_n$ continues until it gets within $2^{-n}$ of $\Omega_n$, and then halts. If you run all finite programs forever, then you see all contributions to $\Omega$, so you get arbitrarily close to $\Omega$, and $P_n$ must halt at some point. $P_n$ runs a copy of itself, but it doesn't observe itself halt. So, the contributions of programs which halt up to this point (at least $\Omega_n - 2^{-n} \ge \Omega - 2^{-n+1}$), plus $2^{-|P_n|}$ for $P_n$, must be less than $\Omega$. This means $|P_n|\ge n$.

Let $c_1(n)$ be the length of the part of $P_n$ which says to run all finite programs, tallying their contributions to $\Omega$, and halt if it gets within $2^{-n}$. $c_1(n)$ is $O(\log n)$. For any $n$, there can't be a way unpack $\Omega_n$ with fewer than $n-c_1(n)$ bits. If $\Omega$ were not normal, then for infinitely many $n$, $\Omega_n$ could be compressed saving at least $c_2 n + c_3$ bits. If $90\%$ of the digits of $\Omega$ were $0$s then it would take fewer than $n/2 + c_4$ bits to encode $\Omega_n$. So, if $\Omega$ is not normal, then some $P_n$ could have fewer than $n$ bits, a contradiction.