# Random Tuple

**URL:** https://discourse.julialang.org/t/random-tuple/30623
**Category:** General Usage
**Tags:** question
**Created:** [November 2, 2019, 2:10pm UTC](https://discourse.julialang.org/t/random-tuple/30623 "2019-11-02T14:10:54Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![martingalemeasure](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/martingalemeasure/32/10022_2.png) [@martingalemeasure](https://discourse.julialang.org/u/martingalemeasure)
#### Post date: [November 2, 2019, 2:10pm UTC](https://discourse.julialang.org/t/random-tuple/30623/1 "2019-11-02T14:10:55Z")

</div>

How do I create a random Tuple in Julia 1.2. In the docs it says  
" Support for `S` as a tuple requires at least Julia 1.1."  
but when I try `rand(Tuple{Int64, Int64})` I get the error “Sampler for this object is not defined”

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [November 2, 2019, 2:23pm UTC](https://discourse.julialang.org/t/random-tuple/30623/2 "2019-11-02T14:23:43Z")

</div>

```julia
julia> map(rand, (Int64, Int64))
(8612835158694908284, -1644040312126833100)

```

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [November 2, 2019, 2:27pm UTC](https://discourse.julialang.org/t/random-tuple/30623/3 "2019-11-02T14:27:15Z")

</div>

> [@martingalemeasure](#):
>
> " Support for `S` as a tuple requires at least Julia 1.1."

This refers to

> Pick a random element or array of random elements from the set of values specified by S; S can be … _a tuple_

```julia
julia> rand((1,6))
6

julia> rand((1,6))
1

```

---

<div class="post-metadata">

### Author: ![rfourquet](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rfourquet/32/3610_2.png) [@rfourquet](https://discourse.julialang.org/u/rfourquet)
#### Post date: [November 2, 2019, 3:13pm UTC](https://discourse.julialang.org/t/random-tuple/30623/4 "2019-11-02T15:13:32Z")

</div>

An alternative to `map(rand, (Int64, Int64))`, if you don’t mind using a package:

```julia
julia> using RandomExtensions

julia> rand(Tuple{Int,Int})
(6826736764378320271, -5931137627310704668)

julia> rand(NTuple{3}) # Float64 by default
(0.08253834652530578, 0.9455169860381427, 0.9683800214432958)

julia> rand(1:9, Tuple, 5)
(3, 6, 9, 1, 4)

```

---

<div class="post-metadata">

### Author: ![martingalemeasure](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/martingalemeasure/32/10022_2.png) [@martingalemeasure](https://discourse.julialang.org/u/martingalemeasure)
#### Post date: [November 2, 2019, 3:37pm UTC](https://discourse.julialang.org/t/random-tuple/30623/5 "2019-11-02T15:37:58Z")

</div>

Thanks for the quick response.

---

<div class="post-metadata">

### Author: ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)
#### Post date: [July 6, 2020, 2:23am UTC](https://discourse.julialang.org/t/random-tuple/30623/6 "2020-07-06T02:23:39Z")

</div>

> [@StefanKarpinski](#):
>
> ```julia
> julia> map(rand, (Int64, Int64))
> (8612835158694908284, -1644040312126833100)
> 
> ```

What is a version with specific random number generator? Say, I want to use:

```julia
rng = MersenneTwister(314159);

```

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [July 6, 2020, 2:34am UTC](https://discourse.julialang.org/t/random-tuple/30623/7 "2020-07-06T02:34:59Z")

</div>

The same way you take any other scalar operation and apply it to multiple arguments: broadcasting!

```julia
julia> using Random

julia> rng = MersenneTwister(314159);

julia> rand(rng, Int64)
-3407443199336529215

julia> rand.(rng, (Int64, Int64))
(-6900968445183223651, 2301483206877765760)

julia> rand.(rng, (Int64, Float64, UInt8))
(1901333683407452888, 0.12793828142902886, 0xfa)

```

---

<div class="post-metadata">

### Author: ![pauljurczak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pauljurczak/32/921_2.png) [@pauljurczak](https://discourse.julialang.org/u/pauljurczak)
#### Post date: [July 6, 2020, 2:41am UTC](https://discourse.julialang.org/t/random-tuple/30623/8 "2020-07-06T02:41:57Z")

</div>

I meant, how do you use it with `map` function call?

---

<div class="post-metadata">

### Author: ![greg\_plowman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/greg_plowman/32/8100_2.png) [@greg\_plowman](https://discourse.julialang.org/u/greg_plowman)
#### Post date: [July 6, 2020, 3:32am UTC](https://discourse.julialang.org/t/random-tuple/30623/9 "2020-07-06T03:32:16Z")

</div>

Here’s one way?

```julia
map(x -> rand(rng,x), (Int64, Int64))

```
