I was reading in the "Technical background of version 1 Bitcoin addresses" that addresses are a function of the private key. More or less:

Private Key -> Public Key -> Address

If the public key is the only input needed to generate an address, how come a wallet generates a different address every time? What is changing?