In Postgres 16.1, running the following query:
```
select
gs,
gs + random() * 100 - 50 as gs2,
random() * 100 - 50 as r1,
random() * 100 - 50 as r2,
random() * 100 - 50 as r3
from generate_series(0, 10) as gs
order by random();
```
Every `random()` invocation in the select list uses a single consistent
value within each returned row. Remove the `order by random()` and
values become randomized as expected, but it gets a bit stranger:
- order by any of the `rN` values and `gs2` uses a different random
value, but all the `rN` values are identical;
- order by `gs2` and all random values are distinct again.