class_docstr: Generator of the LaserBeam objects for the LaserBeamAttack purpose
class_docstr_tok: ["Generator","of","the","LaserBeam","objects","for","the","LaserBeamAttack","purpose"]
docstr: Generate object of the LaserBeam class that will have randomly generated parameters in the tolerance ranges.
  
  :return: LaserBeam object with random parameters
docstr_tok: ["Generate","object","of","the","LaserBeam","class","that","will","have","randomly","generated","parameters","in","the","tolerance","ranges",".",":","return",":","LaserBeam","object","with","random","parameters"]
code: def random(self) -> LaserBeam:
      """
      Generate object of the LaserBeam class that will have randomly generated parameters in the tolerance ranges.
  
      :return: LaserBeam object with random parameters
      """
      random_params = self.min_params.to_numpy() + np.random.uniform(
          0, 1
      ) * (self.max_params.to_numpy() - self.min_params.to_numpy())
  
      return LaserBeam.from_numpy(random_params)
  
imports: import logging
  from typing import Callable, List, Optional, Tuple, Union, Any
  import numpy
  from art.attacks.attack import EvasionAttack
  from art.attacks.evasion.laser_attack.algorithms import greedy_search
  from art.attacks.evasion.laser_attack.utils import AdversarialObject, AdvObjectGenerator, DebugInfo, ImageGenerator, Line, wavelength_to_rgb
label_desc: Use image node_id 5 for calling the LaserBeamGenerator obj's underlying member method code with example usage: obj.random() and returns: LaserBeam