[1] One common way to implement rand_update is to use the rule that $x$ is updated to $ax+b$ modulo $m$, where $a$, $b$, and $m$ are appropriately chosen integers. Chapter 3 of Knuth 1981 includes an extensive discussion of techniques for generating sequences of random numbers and establishing their statistical properties. Notice that the rand_update function computes a mathematical function: Given the same input twice, it produces the same output. Therefore, the number sequence produced by rand_update certainly is not random, if by random we insist that each number in the sequence is unrelated to the preceding number. The relation between real randomness and so-called pseudo-random sequences, which are produced by well-determined computations and yet have suitable statistical properties, is a complex question involving difficult issues in mathematics and philosophy. Kolmogorov, Solomonoff, and Chaitin have made great progress in clarifying these issues; a discussion can be found in Chaitin 1975.
[2] This theorem is due to E. Cesàro. See section 4.5.2 of Knuth 1981 for a discussion and a proof.
3.1.2 The Benefits of Introducing Assignment