# Rarities & Randomness

Each Dragobit trait has 100 types: 100 atmospheres, 100 platforms, and 100 species (which may increase in future [deployments](https://docs.dragobits.com/game/deployments)). With the exception of activated [rarity auras](https://docs.dragobits.com/game/auras), all traits share the same rarity. However, since each Dragobit is a unique combination of these traits, it is unlikely to achieve a perfect match of the same atmosphere, platform, and species.

<figure><img src="https://822062291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4RIEOd04Q8veh8jY7xTW%2Fuploads%2FBcNKJaJzYYAmhQ5x3h1C%2Fdragobits_57_standard.png?alt=media&#x26;token=bcdedf8c-2cfb-4ed8-8f8b-5daa3cfc9276" alt="" width="340"><figcaption><p>Perfect Alien Dragobit</p></figcaption></figure>

In Dragobits Stage 0 and its predecessors, randomness is actually pseudo-randomness, meaning it relies on values that could potentially be influenced by chain operators. On Ethereum L2 chains, this particularly refers to the sequencer. For example, on Base, the sequencer - currently centralized and operated by Coinbase - would need to intervene to manipulate the pseudo-randomness. It is generally assumed that such manipulation is unlikely.

In future versions, the goal is to work with a fully decentralized source of randomness. Several solutions are possible, including:

* Committing to a future value of [Ethereum’s L1 RANDAO](https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/block-proposal/).
* Using an oracle like [Chainlink VRF](https://docs.chain.link/vrf).
* Implementing a verifiable delay function ([VDF](https://vitalik.eth.limo/general/2024/10/29/futures6.html#4)).
* Employing a [zero-knowledge-based](https://zkvrf.com/) source of randomness.
