You can upload something like a comma-separated file to the function generator and generate an 'arbitrary' periodic waveform (within the limitations of sample rate and memory depth). Often they will also have pre-programmed (not so) arbitrary waveforms.
For example, here is the relevant section of a Rigol manual:
DG4000 provides 150 kinds of built-in arbitrary waveforms stored in non-volatile memory and allows users to store 10 user-defined arbitrary waveforms in non-volatile memory and 1 user-defined arbitrary waveform in volatile memory. Users can also store the user-defined arbitrary waveform in external memory (such as USB storage device). User-defined waveforms can contain 1 (DC voltage) to 16384 (16k) data points, namely 1pts to 16kpts
(Note that the waveform points have to be loaded into the high-speed RAM to actually be used, the non-volatile memory is just storage and is not fast enough to drive the arb)
Built-in waveforms include things like Gaussian pulses, cardiac and EEG signals, TENS waveforms, and such exotica as the "Protuberant arc hyperbolic cosecant" waveform.
This contrasts with DDS function generators that typically contain only a single look-up table for one quadrant of a sine wave.