Most commonly these states are set to zero, this usually works, but it can have a negative influence on the performance.
Another option is to initialize randomly, but this is not straight forward and the performance highly depends on the noise level. In this work the noise level is selected in proportion to the prediction error of the first timestep in the series.
A third option is to use learnable variables. You can initialize these randomly and the model will learn the initialization vectors by itself. This is showcased in this answer on SO
I'd say options one and three are the most straight forward and I've mostly seen the first method.
For reference, see this paper.
Your question is related to the initial states of LSTM, where
c(t-1) is the cell state (memory) and
h(t-1) is the previous LSTM block output.
As pointed out here, it is reasonable to assume that those are random values.