If you choose a number uniformly at random in the range $[0, 31]$, that's $32$ distinct values and thus $log_2(32) = 5$ bits of entropy. If you choose $8$ such numbers, then you have $5 \times 8 = 40$ bits of entropy total, meaning that there are $2^{40}$ distinct combinations you could get. It doesn't matter how you combine them, that's already far short of $2^{256}$.
And it gets worse, because you're multiplying numbers that you compute from your eight choices:
$$\mathit{rand} = 2^{r_1}\cdot 2^{r_2}\cdot 2^{r_3}\cdot 2^{r_4}\cdot 2^{r_5}\cdot 2^{r_6}\cdot 2^{r_7}\cdot 2^{r_8} $$
Since multiplication is commutative ($a \times b = b \times a$) and associative ($a \times (b \times c) = (a \times b) \times c$), it means that many combinations among those $2^{40}$ distinct choices actually yield the same product after the multiplication. E.g., if two sequences of random choices are permutations of each other their product is the same. In this case, it is even worse, since $\mathit{rand}=2^{r_1+\dots+r_8}$ is always a power of two: This means we are effectively sampling a $256$-bit number that has exactly one bit set, so there's only $256=2^8$ possible outcomes!
If not, then how to do it, how to generate big random number by combining it from smaller ones?
Basically, by choosing digits at random in some base. If you have $n$ randomly drawn digits $d_0, ..., d_{n-1}$ in base $b$, then $d_0b^0 + ... + d_{n-1}b^{n-1}$ is a uniform random number in the range $[0, b^n)$. For example, to generate a 256-bit number at random, you could:
- Choose 256 individual bits at random ($n = 256$, $b = 2$);
- Choose 32 bytes at random ($n = 32$, $b = 8$);
- Choose eight 32-bit machines words at random ($n = 8$, $b = 32$);
- Choose four 64-bit machines words at random ($n = 4$, $b = 64$).
In practice, this is done by just concatenating randomly chosen bytes or machine words.