code: def get_random_surah(self, lang='id'):
          
          # Ensure the language supported.
          if lang not in self.SUPPORTED_LANGUAGES:
              message = 'Currently your selected language not yet supported.'
              raise ODOAException(message)
          # Get random surah and construct the url.
          rand_surah = random.randint(1, self.TOTAL_SURAH)
          surah_url = '{base}/surah/surah_{pages}.json'.format(base=self.BASE_API,
                                                               pages=rand_surah)
          try:
              response = urlopen(surah_url)                        # Fetch data from given url.
              data = json.loads(response.read().decode('utf-8'))   # Get response and convert to dict.
          except IOError:
              traceback.print_exc(file=sys.stdout)
              raise ODOAException
          else:
              # Get random ayat.
              random_ayah = random.randint(1, int(data.get('count')))
              ayah_key = 'verse_{index}'.format(index=random_ayah)
              ayah = data['verse'][ayah_key].encode('utf-8')
              surah_index = data.get('index')
              surah_name = data.get('name')
              # Get translation and sound url.
              translation = self.__get_translation(surah=surah_index,
                                                   ayah=ayah_key,
                                                   lang=lang)
              sound = self.__get_sound(surah=surah_index, ayah=random_ayah)
              desc = '{name}:{ayah}'.format(name=surah_name, ayah=random_ayah)
              meta = Metadata(ayah, desc, translation, sound)
              return meta
docs: Perform http request to get random surah.
  
          Parameter:
              :lang       --  String contains language code.
  
          Return:
              :dict       --  Paired ayat, sound, description and the translation.