Como generar números aleatorios con google apps script

En muchas ocasiones nos puede resultar muy útil generar números aleatorios cuando hacemos nuestros scripts de Google Apps Script: para juegos, para dar cierta aleatoriedad a nuestras respuestas o inventarnos un identificador único para todo aquello que necesitemos. 

Lo que os explicaré hoy no es un sistema criptográficamente seguro de generar números aleatorios con Google Apps Script, solo es una manera de generar números aleatorios de baja calidad estadística ( que para la gran mayoría de nuestros usos va a ser mucho más que suficiente )

Nuestro sistema se basará en el Math.random que todo lo que hace es generar un float entre 0.0 y 1.0  (este último no incluido). Teniendo este valor entre 0 y 1, podemos multiplicarlo, redondearlo y operarlo como queramos.

A fin de hacerlo fácil he creado esta función para que podáis tener números aleatorios con Google Apps Script de forma bastante fácil: 

function GetRandom(min,max)
{
  return Math.floor(Math.random()*(max -(min -1))) + min;
}

Le pasáis el mínimo y el máximo y ya tenéis el número aleatorio que os interesa.

Si estás aprendiendo Google Apps Script y vienes de lenguajes como C , tal vez una nomenclatura en que al random solo quieres pasarle el numero de elementos a sortear te va mejor. Si ese es el caso, aquí tienes el código: 

function crand(elements)
{
  return GetRandom(0,elements-1);
}

Como podéis ver el código es muy sencillo y fácil de seguir. Recordad que estas funciones no sirven para nada estadísticamente "serio" como por ejemplo criptografía, pero para vuestras pequeñas aplicaciones y juegos este código os irá fenomenal.

No vaciléis en hacerme llegar vuestras dudas

Nos vemos




6 comentarios:

  1. Hola. Pero podrias pasarme como seria el código para que el aleatorio sea insertado en la columna B, cada vez que se recibe una nueva respuesta de un forms?

    ResponderEliminar
    Respuestas
    1. function onFormSubmit(e) {
      // Obtiene la respuesta más reciente del formulario
      var responses = e.values;

      // Obtiene un número aleatorio
      var randomNum = GetRandom(1, 1000); // CANTIDAD MAXIMA

      // Accede a la hoja de cálculo conectada al formulario
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

      // Coloca el número aleatorio en la columna C de la fila correspondiente a la respuesta
      sheet.getRange(e.range.getRow(), 3).setValue(randomNum); // NUMERO DE LA COLUMNA
      }

      function GetRandom(min, max) {
      return Math.floor(Math.random() * (max - min + 1)) + min;
      }

      Eliminar
    2. El script esta hecho para la columna C y no como lo decía en la pregunta. Para que funcione como es, hay que activar un trigger.

      Eliminar
    3. Duda resuelta entonces? O sigues necesitando mi ayuda?

      Eliminar
    4. Ya estuvo resuelto con ayuda de chatgpt y lo compartí para quien lo quiera. Gracias por responder.

      Eliminar

Tal vez te interese