Caso você necessite embaralhar os elementos de um array, não é preciso pensar em um algoritmo que faça isso automaticamente. Você pode fazer uso da função shuffle, da seguinte forma:
<?php
$elementos = array('Banana', 'Maça', 'Pêra', 'Abacate', 'Limão', 'Laranja', 'Abacaxi', 'Morango');
shuffle($elementos);
print_r($elementos);
?>
Exibindo a impressão deste código, obtive o seguinte retorno:
Array ( [0] => Pêra [1] => Banana [2] => Maça [3] => Morango [4] => Abacate [5] => Abacaxi [6] => Laranja [7] => Limão )
Executando novamente o código, obtive o retorno:
Array ( [0] => Morango [1] => Limão [2] => Abacate [3] => Laranja [4] => Banana [5] => Pêra [6] => Maça [7] => Abacaxi )
Como é possível notar, a função shuffle realmente embaralha aleatoriamente os elementos.
Outras dicas de PHP
Apagando variáveis de sessão
array_reverse - Invertendo um vetor
array_search - Procurando um item em um array
Capturando a extensão de um arquivo
Capturando dados de um checkbox
Casts - Convertendo tipos de dados
ceil - Arredondando números reais para cima
checkdate - Validando datas no código PHP
Como desabilitar checkbox
Como desabilitar um radiobutton
Como permitir somente o upload de imagens
Como remover espaços em branco de uma string
Como validar o upload de um arquivo via POST
Convertendo caracteres com acento para maiúsculo com mb_strtoupper
Corrigindo a formatação da página para exibir acentos
Corrigindo o erro 'invalid byte sequence for encoding' ao acessar o Postgres
Criando e lendo um cookie em PHP
Criando variáveis de sessão
Date - Exibindo horário em formato hh:mm:ss
define - Criando constantes
Desabilitando as mensagens de Deprecated Functions
empty - Verificando se variável está vazia
Entendendo as diferenças entre os comandos include e require
Entendendo as diferenças entre os comandos include_once e require_once
Exibindo uma imagem após o post
floor - Arredondando números reais para baixo
gettype - Obtendo o tipo de dado de uma variável
Impedindo SQL Injection
Imprimindo Arrays
join - Convertendo um array em string
max - Encontrando o maior elemento de um vetor
min - Encontrando o menor elemento de um vetor
mt_rand - Gerando números randômicos
number_format - Formatando números
Operador ternário
Passando caracteres especiais por GET
Passando dados por QueryString
Permitindo o upload somente de arquivos PDF e do Word
Redirecionando para outras páginas
Removendo acentos em PHP
Removendo cookies em PHP
Retornando para a página anterior
Round - Arredondando números float
Rsort - Ordenando os itens de um vetor em ordem alfabética decrescente
session_write_close - gravando dados e fechando a sessão
shuffle - Embaralhando elementos de um array
Sizeof - Contando os elementos de um vetor
Sort - Ordenando os itens de um vetor
strtolower - Deixando todos os caracteres em minúsculo
strtoupper - Deixando todos os caracteres em maiúsculo
str_replace - Substituindo caracteres em uma string
Trabalhando com datas em PHP
ucfirst - Deixando o primeiro caractere sempre maiúsculo
ucwords - Deixando o primeiro caractere de cada palavra maiúsculo
unset - Excluindo variáveis
unset - Removendo elementos de um array
var_dump - Analisando as variáveis
Você Sabia?
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
Mega Man
A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.
Tomb Raider - O Filme
Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.
Galaxy Game
As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.