# RND: Your Randomness Wrangler

Need to add a bit of unpredictability to your Commodore 64 programs? Look no further than the `RND`

command, your randomness wrangler! This quirky function generates pseudo-random numbers, perfect for everything from simple dice rolls to complex simulations. It's like having a pocketful of dice that you can shake and roll whenever you need a touch of chaos in your code!

### Syntax

```
RND(<number>)
```

Where:
- `<number>`

:
- If positive or zero: Generates a random decimal number between 0 (inclusive) and 1 (exclusive).
- If negative: "Seeds" the random number generator, starting a new sequence of random numbers.

### Applications

The `RND`

function is your go-to tool for:

**Games of chance:**Simulate dice rolls, card draws, or slot machine spins.**Procedural generation:**Create random mazes, landscapes, or enemy encounters for games.**Simulations:**Model real-world phenomena with elements of randomness, like weather patterns or stock market fluctuations.**Art and music:**Generate random colors, patterns, or notes for creative projects.

### Code Examples

**1. Simple Random Number:**

```
10 X = RND(1) :rem Generate a random number between 0 and 1
20 PRINT X
```

This will output a different random decimal value each time it's run.

**2. Rolling a Die:**

```
10 print "press r to roll" :rem seed the random number generator with a changing value (ti is a system variable for time)
20 get a$
30 if a$ <> "r" then 20
20 d = int(rnd(ti)*6) + 1 :rem generate a random integer between 1 and 6
30 print "you rolled a ";d
```

This example simulates rolling a six-sided die. Note the use of `RND(-TI)`

to re-seed the generator, ensuring a different outcome each time.

**3. Random Choice:**

```
10 print "press x to start"
20 get a$: if a$ <> "x" then 20
30 data "rock", "paper", "scissors"
40 for i = 0 to 2 : read c$(i) : next i
50 r = rnd(-ti)
60 c = int(r*3) + 1
70 print "computer chooses "; c$(c); r
```

This snippet demonstrates how to use `RND`

to make a random choice from a list of options.

### RND in the Wild: The Roguelike Dungeon Master

Imagine you're creating a roguelike game where dungeons are randomly generated each time you play. `RND`

would be your dungeon master, determining the layout of rooms, the placement of monsters, and the location of treasure, ensuring that each adventure is unique.

Don't let your programs be predictable! With the `RND`

command, you can inject an element of surprise and randomness into your code. It's a versatile tool that can open up a world of creative possibilities, from games of chance to generative art. So go ahead and roll the dice – let `RND`

be your guide to a world of unpredictability!

**Important Note:** The `RND`

function generates pseudo-random numbers, meaning they're not truly random but follow a deterministic pattern. If you need truly random values, you'll have to explore external sources of randomness, like the noise generated by the SID chip.