Oracles are external applications that help your smart contract receive information from the outer world to perform some functions outside of what's possible inside Solidity or Vyper. How they work is simple: you create a centralized server that calls specific functions of your smart contract when needed.
They are used to generate random numbers, to provide live price data, and to show information from websites. As you know, smart contracts can't generate random numbers because there can't be any uncertainty regarding being able to avoid unexpected situations in the blockchain.
In this section, you'll learn how to create an Oracle to generate a random number between 1 and 100 for a game on the blockchain. There are already oracles doing these tasks, namely Oraclize, which has been used for a long time with Solidity.
...