はじめてのRuby!配列をランダムに取得・入れ替え|sample・shuffle

Rubyには配列の要素をランダムで取得・入れ替えすることができる便利なメソッドが用意されています。

「配列の要素の中からランダムで値を取得したい」
「配列の要素をランダムで並び替えたい」

といった悩みを抱えている方に向けて、この記事では以下の内容について解説していきます。


・配列をランダムに取得・入れ替えするには
・sampleメソッドの使い方
・shuffleメソッドの使い方

配列をランダムで取得できるsampleshuffleメソッドについてわかりやすく解説していますので、ぜひ参考にしてください!

それではいってみましょう!

配列をランダムに取得・入れ替えするには

配列にはさまざまなメソッドが用意されていますが、配列の内容をランダムに取得したり、ランダムに入れ替えを行うにはsampleメソッド、shuffleメソッドを使用します。

配列をランダムで取得する処理は、すごろくやカードゲームなどのゲームアプリでよく使われます。

これらのメソッドを使うことで、わざわざランダムで取得する処理を実装しなくても、メソッドを使って簡単に取得できます。

要素をランダムに取得するsampleメソッド

sampleメソッドは、配列の要素1つをランダムに取得します。

sampleメソッドの書き方:

配列が空だった場合はnilを返します。

引数を指定しない場合は要素を1つランダムで取得します。

引数を指定した場合は指定した数だけ要素をランダムで取得します。

要素をランダムに入れ替えるshuffleメソッド

shuffleメソッドは配列の要素をランダムに入れ替えて取得します。

shuffleメソッドの書き方:

配列が空だった場合はnilを返します。

「!」を付加した破壊的メソッドの場合は配列自信を入れ替えた値に変更されます。

sampleメソッドの使い方

引数なしの場合

では実際にsampleメソッドを使ってみましょう。

以下のサンプルをご覧ください。

実行結果:

このようにランダムな要素が取得できました!

プログラムを実行するたびにランダムで要素が取得されます。

引数ありの場合

引数ありの場合のプログラムを見てみましょう。

実行結果:

このように引数で指定した要素分ランダムで取得することができました!

など、引数が配列の要素数よりも大きい場合は配列の全要素分ランダムで取得できます。

shuffleメソッドの使い方

続いてshuffleメソッドの使い方について見ていきましょう。

以下のサンプルをご覧ください。

実行結果:

実行結果のとおり要素をランダムで並べ替えた配列を取得することができました!

shuffleメソッドを使えば、このように簡単にランダムに並び替えた要素が取得できることがわかりますね!

また、破壊的メソッドshuffle!を使えば、元の配列自信の並び替えを行います。

実行結果:

配列についてもっとよく知りたい方へ

配列の基礎からさまざまな使い方については、以下の記事でも詳しく解説していますのでぜひ参考にしてください!

【Ruby】Array(配列)の基礎からさまざまな使い方まで徹底解説!
更新日 : 2018年12月26日

まとめ

ここでは、配列の要素をランダムで取得・並び替えできるsample、shuffleメソッドについて解説しました。

  • 配列をランダムに取得・入れ替えするには
  • sampleメソッドの使い方
  • shuffleメソッドの使い方

とくにゲームなどのアプリケーションで、ランダムで値を取得する処理はよく使われますので、使い方については理解しておきましょう。

もし、sample・shuffleメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2
LINEで送る
Pocket

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説