# Problems with randomness

In traditional centralized applications, services where many people are present don't provide enough clarity and fairness. The centralized provider can definitely lie about randomness, cheat, and adjust results based on his bias, so we have come to a conclusion that we need a workable, unbiased, decentralized random number generator.

Environments like blockchains are decentralized but completely deterministic and isolated, thus making randomness fairly difficult to achieve. Some solutions were carried out for this problem. The common naive decision would normally be to use pseudorandom functions combined with changing properties on the blockchain to generate somewhat random numbers. This is often not a good idea because pseudorandom numbers often "look random" but are predictable or/and easily manipulated by block producers through censorship or block data modifications. So pseudorandom functions are definitely not the way to go, another solution is to use oracles. However, there are caveats in using oracles, with the main one being the lack of decentralization. Many existing oracles are either centralized or controlled by a limited group of node operators, which leads to centralization.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unpredictable-dao.gitbook.io/unpredictable-dao/problems-with-randomness.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
