If no data is provided, get it from crypto.pseudoRandomBytes