# Consider if your challenge really needs random output

Challenges that require [tag:random] output require extra clarifications that challenges with deterministic output do not, and additionally exclude languages with no source of non-determinism.

Often times randomness only acts as a [cumbersome output format](https://codegolf.meta.stackexchange.com/a/8077/56656), adding the randomness boilerplate from whatever language (or preventing submissions in that language).

At the same time there are few benefits that it provides to a challenge.

If there are a finite number of valid outputs for every input (which seems to be the majority of [tag:random] challenges) you can change a challenge from

> Generate a random X

to

> Output all Xs

Of course there are other ways to remove unnecessary randomness, for example if challenges of the form:

> Generated a random X that satisfies property Y

often (but not always) break down into two challenges

> Generate a random X

and

> Given an X determine if it satisfies property Y

And you will often find a more worthwhile challenge in one of these two (or both).

---

Of course there are challenges that are best with random outputs. The clearest case of this are challenges that ask to generate output with a specific distribution, where meeting the specific distribution is the challenge.

Some examples of such challenges

 * [Shortest code to produce non-deterministic output](https://codegolf.stackexchange.com/questions/101638)