> For the complete documentation index, see [llms.txt](https://docs.onum.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onum.com/pipelines/actions/transformation/field-transformation/field-transformation-operations/utils/shuffle.md).

# Shuffle

## Description

This operation rearranges the elements of an input string, list, or dataset into a random order. It’s a useful operation for tasks like randomization, testing, or introducing entropy into datasets.

***

## Data types

These are the input/output expected data types for this operation:

### Input data

`String` - Strings whose characters will be shuffled.

### Output data

`String` - Resulting strings after shuffling the characters.

***

## Parameters

These are the parameters you need to configure to use this operation (mandatory parameters are marked with a <mark style="color:red;">**\***</mark>):

<details>

<summary>Delimiter<mark style="color:red;"><strong>*</strong></mark></summary>

Specifies a delimiter to split the input string before shuffling. Each segment of the string, separated by the delimiter, will be shuffled independently. If no delimiter is provided, the entire string is shuffled as a single unit.&#x20;

Choose between:

* **Line feed** - Select this to have each line of text as a separate value.
* **Space** - Your segments are separated by spaces.
* **Comma** - Your segments are separated by commas (`,`)
* **Semi-colon** - Your segments are separated by semi-colons (`;`)
* **Colon** - Your segments are separated by colons (`:`)
* **CRLF** - Carriage return line feed (CRLF) is a control character that originally referred to moving the carriage on typewriters back to the starting position. In computing, it’s used in classic Mac OS and some Windows-based systems to mark the end of a line. If your input uses `\r` as the line-ending character, you can set the delimiter to `\r` to correctly separate values. For example: `100\r200\r300`

</details>

***

## Example

Suppose you want to **shuffle** the characters of a series of strings in your input data:

1. In your Pipeline, open the required [Action](/pipelines/actions.md) configuration and select the input **Field**.
2. In the **Operation** field, choose **Shuffle**.
3. Set **Delimiter** to `Comma`.
4. Give your **Output field** a name and click **Save**. The characters in your input strings will be shuffled.

For example:

{% code overflow="wrap" %}

```
Hello, World! -> eollH,ro!ld W
```

{% endcode %}

{% hint style="info" %}
You can try out operations with specific values using the **Input** field above the operation. You can enter the value in the example above and check the result in the **Output** field.
{% endhint %}
