How to: Generate Random String in Dart| Flutter By Example

Random Generator is utilized to produce a unique value for each invocation. This post elaborates on various methods for generating a random string, providing examples for each.

Dart/Flutter Example: Generating a Random String

This example demonstrates the generation of a random string with specified length.

Here are the steps to follow:

  • First, create a constant character array containing alphabets and special characters.
  • Then, generate a random number within the range of the character array’s length.
  • Create a List of random Unicode numbers using the Iterable.generate() method.
  • Finally, generate a string from the list using the String.fromCharCodes() method.

Below is the example code:

import 'dart:math';

void main() async {
  print(getRandomString(10)); //ynAIrUMKfk
  print(getRandomString(10)); //YEgY-EI?Ss
  print(getRandomString(10)); //CxjjeIIRAn

String getRandomString(int length) {
  const characters =
  Random random = Random();
  return String.fromCharCodes(Iterable.generate(
      length, (_) => characters.codeUnitAt(random.nextInt(characters.length))));

Dart Example: Generating a Random Base64 Encoded String

dart:convert library provides conversion utilities such as the base64UrlEncode class. By using, cryptographically secure random numbers are generated from the platform’s OS. The process involves creating a list of integers through the generate method and then converting the list into an encoded byte string using base64UrlEncode.

Here is an example program.

import 'dart:math';
import 'dart:convert';

void main() async {

  print(getBase64RandomString(20)); //NEteMh73f6VtQMbypjdyCh69nLM=
  print(getBase64RandomString(20)); //nsrv3EJf8sqt6C4bsAeO0T-ro-A=
String getBase64RandomString(int length) {
  var random =;
  var values = List<int>.generate(length, (i) => random.nextInt(255));
  return base64UrlEncode(values);


In conclusion, this post has provided examples on how to generate random strings in Dart, showcasing different methods and libraries.