Gnumeric contains 520 functions
SS internal or user-defined function example, irand.c:
/* 1 pseudo-random integer, 0<=irand(i)<=i-1 */ double nf_irand(const Node *n, const Cell *c) { int i = eval_tree( Right(n), c); return (int) (i*(rand()/(RAND_MAX+1.0))); }