input: from typing import List
  
  def generate_random_array(low: int, high: int, size: tuple) -> List[List[int]]:
      """ Generates a 2D array of given size, filled with random integers in the
      range [low, high).
      >>> generate_random_array(1, 6, (3, 3))
      [[2, 3, 1], [5, 1, 2], [3, 4, 1]]
      >>> generate_random_array(1, 6, (2, 2))
      [[4, 1], [2, 5]]
      """
output:     import random
      return [[random.randint(low, high - 1) for _ in range(size[1])] for _ in range(size[0])]