I understand that for WPA:
The AP sends a nonce value to the client
The client sends its own nonce value to the AP and computes the transient key using the two nonces ,as well as the MAC address of itself and the AP, and hashes the nonce as well to send
The AP now also constructs a transient key based on the same values from step 2.... (rest of the exchange omitted)
Now, what I don't understand is: in steps 2 and 3 the transient key that is calculated is supposed to be the output of a random (okay, pseudorandom) function. If this is the case doesn't this mean that even though the input is the same, the two keys will be different because they're run on each side and not shared? I'm surely missing some detail here.