// shuffleはMutableListの拡張関数。対象のMutableListをシャッフルするだけ。 public actual inline fun <T> MutableList<T>.shuffle() { java.util.Collections.shuffle(this) } // shuffledはIterableの拡張関数。同じ型を返すので、そのまま関数を続けることができる。 @SinceKotlin("1.2") public actual fun <T> Iterable<T>.shuffled(): List<T> = toMutableList().apply { shuffle() } ↓ list.shuffled().first()