Please forgive me if this is not the right place, however, I encountered [this](https://tls.mbed.org/api/ecdh_8h.html#a403a5d7363b6219a2017b837b665c354) TLS implementation with function that generates an ECDH key pair on an elliptic curve: 

In addition to the private key and a point on the curve, the function also needs random inputs. Why and for what are the random variables required? Why isn't it just Q=d*G?