Typically the goal of crest factor minimization is to find the time signal with the small-ish crest factor for a given amplitude spectrum in the frequency domain. If your goal is different, please update your question.
The only "dial" you have is the phase spectrum. Hence the primary output of a CF minimization process is a phase spectrum. With the exception of a few special cases there are no good analytical solutions for this (at least as far as I know), so most methods are iterative or heuristic.
If you choose a random phase, you typically end up with a crest factor of about 4 to 5, which is simply a consequence of the central limit theorem. Your amplitude distribution will be roughly Gaussian, which in theory has infinite crest factor. However, in practice, amplitudes higher than 5 are extremely unlikely (around 1e-6) so they rarely occur or the error resulting by simply clipping them off of negligible
Iterative methods work the following way:
- Initialize with a random phase
- Go to time domain
- Clip time domain signal slightly below the target crest factor
- Go back to the frequency domain and repair the amplitude spectrum
- Repeat until you reached your target crest factor or you time out
The idea here, is that every iteration step drives the phase spectrum closer to one which represents a lower crest factor. This works quite well with reasonably "broad" spectra and you may be able to get to about 1.2 or so.
Sparsely populated spectra are more tricky since there are less degrees of freedom.
An alternative method is to construct the time domain signal directly by concatenating chunks of sine waves where the dwell time at each frequency is proportional to the target energy at this frequency. Then repair any spectral errors in the frequency domain. This will create more "sweep like" signals and tends to works better for spectrally sparse signals. CFs will come about 1.6 or so. In the special case of a white signal this is equivalent to the "squared phase" approach