Randomly select a popular person.

        Notes:
          Requires at least two API calls. May require three API calls
          if the randomly-selected index isn't within the first page of
          required data.

        Arguments:
          limit (:py:class:`int`, optional): How many of the most
            popular people to make random choice from (defaults to top
            ``500``).

        Returns:
          :py:class:`~.Person`: A randomly-selected popular person.

async def get_random_popular_person(self, limit=500):
        """Randomly select a popular person.

        Notes:
          Requires at least two API calls. May require three API calls
          if the randomly-selected index isn't within the first page of
          required data.

        Arguments:
          limit (:py:class:`int`, optional): How many of the most
            popular people to make random choice from (defaults to top
            ``500``).

        Returns:
          :py:class:`~.Person`: A randomly-selected popular person.

        """
        index = random.randrange(limit)
        data = await self._get_popular_people_page()
        if data is None:
            return
        if index >= len(data['results']):
            # result is not on first page
            page, index = self._calculate_page_index(index, data)
            data = await self._get_popular_people_page(page)
        if data is None:
            return
        json_data = data['results'][index]
        details = await self._get_person_json(json_data['id'])
        details.update(**json_data)
        return Person.from_json(details, self.config['data'].get('images'))