The field of algorithmic randomness studies the various ways to define the inherent randomness of individual points in a space (for example, the Cantor space or Euclidean space). Classically, this quest seems quixotic. However, the theory of computing allows us to give mathematically meaningful notions of random points. In the past few decades, algorithmic randomness has been extended to make use of resource-bounded (e.g., time or space) computation. In this survey we survey these developments as well as their applications to other parts of mathematics.