code: def add_noise_column(
      X: pd.DataFrame,
      rng: np.random.Generator,
      noise_columns: List[str] = None,
      count: int = 1,
  ) -> Tuple[pd.DataFrame, List[str]]:
      """
      Create a copy of dataset X with extra synthetic columns generated from standard normal distribution.
      """
      X = X.copy()
      if noise_columns is None:
          noise_columns = [
              str(uuid.uuid4()) for _ in range(1, count + 1)
          ]
      for col_name in noise_columns:
          noise = rng.standard_normal(len(X))
          X[col_name] = noise
      return X, noise_columns
  
imports: import logging
  import time
  import traceback
  import uuid
  from copy import deepcopy
  from typing import List, Set, Tuple, Union
  import numpy
  import pandas
  from autogluon.common.features.types import R_FLOAT
  from ..models.abstract.abstract_model import AbstractModel
  from ..models.ensemble.bagged_ensemble_model import BaggedEnsembleModel
  from ..utils.exceptions import TimeLimitExceeded
  from ..utils.utils import generate_train_test_split, unevaluated_fi_df_template
label_desc: Use image node_id 1 for calling a global function with example usage: add_noise_column(X, rng, noise_columns, count) and returns: X,  noise_columns