これはno plan inc.の Advent Calendar 2022の20日目の記事です。 ちょっと時代遅れかもしれませんが、乱数はDAppの発展には欠かせないパーツでもあるので、今回はオラクルとしても有名なChainlinkとAPI3で乱数を取得してみたいと思います。 まずはとにかく簡単に乱数取得を行いたい。 最も手っ取り早いのはブロックハッシュを用いたものです。 Ethereumは決定論的な環境であるため、Solidityでは乱数生成に使用できる組み込みのエントロピー源を持ちません。そのため以下のようにエントロピー源に近いブロックハッシュを用いてみます。 function random(uint seed) public view returns (uint) { return uint( keccak256(block.blockhash(block.number-1), se