# Server Side Kotlin-14

In Kotlin, the shuffle function is used to randomly rearrange the elements within a collection. :
Shuffling Elements: The shuffle function is part of the Kotlin Collections API. It randomly shuffles the elements in-place within the collection.

In-Place Operation: Unlike some other functions that create new collections, shuffle modifies the original collection. It doesn't return a new collection but instead rearranges the elements within the existing one.

Usage of Random Instance: The shuffling process involves using a specified Random instance as the source of randomness. This allows for control over the randomness used in the shuffling.
The shuffle function is a handy tool when you need to randomize the order of elements in a collection for various scenarios such as games, surveys, or any situation where a random sequence is desired.
```
val games = listOf("unity", "unreal", "godot", "bevy", "monogame", "supe rgame" )  
println(games.shuffled())
val myList = mutableListOf(11, 22, 33, 44, 55)
println(myList.shuffled())
```
output

godot, supe rgame, unreal, monogame, bevy, unity]   

[44, 33, 11, 55, 22]  

(different output may generate at your computer)


 collection can be retrieved in the reversed order using the reversed() function.
```
val games = listOf("unity", "unreal", "godot", "bevy", "monogame", "supe rgame" )  
println(games.reversed()) 
```
output   

[supe rgame, monogame, bevy, godot, unreal, unity]  


reversed() returns a new collection with the copies of the elements. So, if you change the original collection later, this won't affect the previously obtained results of reversed().

Another reversing function - asReversed()

    returns a reversed view of the same collection instance, so it may be more lightweight and preferable than reversed() if the original list is not going to change.
 ```   
val games = listOf("unity", "unreal", "godot", "bevy", "monogame", "supe rgame" )  
val reversedNumbers = games.asReversed()
println(reversedNumbers)
```   
output:-   

[supe rgame, monogame, bevy, godot, unreal, unity]




