Hola a todos! :D
El caso eske estoy haciendo un juego de esos de levantar cartas, el problema que tengo eske cada carta(son 18), debe llevar un numero del 1 al 9 y debe haber dos cartas con cada numero, las cartas son todas el mismo objeto, por eso no se como hacer para que al empezar el juego las cartas se asignen un numero al azar y ke ese numero solo se pueda repetir 1 una vez(por lo de las dos cartas con cada numero) ; e intentado hacer ke funcione de mil maneras sin tener ke usar un objeto para cada carta, pero no hay manera.
alguien sabe alguna manera de solucionar esto? :'(

Hay varias formas de hacerlo, en este momento se me ocurre que podrias crear una lista con los n?meros:

[gml]lista = ds_list_create();
for (i=1;i<=9;i+=1)
repeat(2) ds_list_add(lista,i);
ds_list_suffle(lista);[/gml]

Luego, cuando estas creando las cartas le asignas el primer valor de la lista y luego lo eliminas:

[gml]for (i=0;i<18;i+=1){
  a = instance_create(Obj,x,y);
  a.valor = ds_list_find_value(lista,0);
  ds_list_delete(lista,0);
}[/gml]

Asi cada carta termina con un valor al azar de 1 a 9, repitiendo solamente una vez cada valor.