class_docstr: Consider implementing a random strategy for active learning
code: def __call__(self, request, datastore: Datastore):
      label_tag = request.get("label_tag")
      labels = request.get("labels")
      images = datastore.get_unlabeled_images(label_tag, labels)
      if not len(images):
          return None
  
      strategy = request["strategy"]
      images_info = []
      for image in images:
          images_info.append(
              datastore.get_image_info(image)
              .get("strategy", {})
              .get(strategy, {})
          )
  
      current_ts = int(time.time())
      weights = [current_ts - info.get("ts", 0) for info in images_info]
  
      image = random.choices(images, weights=weights)[0]
      logger.debug(f"Random: Images: {images}; Weight: {weights}")
      logger.info(
          f"Random: Selected Image: {image}; Weight: {weights[0]}"
      )
      return {"id": image, "weight": weights[0]}
  
file_path: MONAILabel/monailabel/tasks/activelearning/random.py
imports: import logging
  import random
  import time
  from monailabel.interfaces.datastore import Datastore
  from monailabel.interfaces.tasks.strategy import Strategy
label_desc: Use image node_id 2 for calling the Random obj's underlying member method code with example usage: obj.__call__(request, datastore) and returns: dict, None