Coarbitrary

The Dual or Arbitrary is Coarbitrary. To understand how this works, see CoArbitrary in Haskell (SO Answer).

In case one wants to randomly generate functions, one will need to use a Coarbitrary constraint to implement that function's Arbitrary instance.

Implementing Coarbitrary isn't hard. Looking at Number's instance, Boolean's instance, and Char's instance, you can start to see a pattern.