You are right that in decryption we need to know the value of $r$, but this can be easily recovered from the ciphertext alone, in fact, $r = Y \oplus H(X)$ and both $X,Y,H$ are known.
Then the message can be recovered as $m00..0 = X \oplus G(r)$
Now, you might wonder how to depad from zeros, or equivalenty how can the decryptor distinguish between $X$ and $Y$.
Well, in fact, the real OAEP is more complicated than the wikipedia figure:
Here, $lHash$ is the hash of the label, $PS$ are zero octets to pad, $01$ is a $0x01$ byte used to remove the $PS$ padding and $M$ is the original message.
The sizes of $seed$ and $lHash$ depend only on the size of output of the selected hash function, which should be known to the decryptor.